黑马程序员技术交流社区
标题:
求 a+aa+aaa+…….+aaaaaaaaa=? 其中a为1至9之中的一个数,项数也要可以指定
[打印本页]
作者:
王小丑
时间:
2013-1-27 17:17
标题:
求 a+aa+aaa+…….+aaaaaaaaa=? 其中a为1至9之中的一个数,项数也要可以指定
求 a+aa+aaa+…….+aaaaaaaaa=?
其中a为1至9之中的一个数,项数也要可以指定,我请教了以为学长 他说就是这样的,可是为什么我上机运行不出来?求高手指点,本人是初学者,虚心向大家学习
mport java.util.Scanner;
class Multinomial{
public static void main(String[] args){
int a; //定义输入的 a
int howMany; //定义最后的一项有多少个数字
Scanner scanner = new Scanner(System.in);
System.out.println(“请输入一个 1~9 的 a 值”);
a = scanner.nextInt();
System.out.println(“请问要相加多少项?”);
howMany = scanner.nextInt();
int sum=0;
int a1=a; // 用来保存 a 的初始值
for (int i=1; i<=howMany; i++){
sum+= a;
a = 10*a +a1; // 这表示a 的下一项
// 每次 a 的下一项都等于前一项*10,再加上刚输入时的 a ;
}
System.out.println(“sum=”+sum);
}
}
作者:
杨玲
时间:
2013-1-27 17:35
a = 10*a +a1; // 这表示a 的下一项
你的这一行代码改一下就可以了,你那个a1能编译通过?
作者:
王小丑
时间:
2013-1-27 17:59
修改了一下 还是运行不出来 您能给出完整的程序吗 这个运行不出来 请教很多人了
作者:
张庚
时间:
2013-1-27 18:04
程序分析:关键是计算出每一项的值。
import java.io.*;
public class Sumloop {
public static void main(String[] args) throws IOException
{
int s=0;
String output="";
BufferedReader stadin = new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入a的值");
String input =stadin.readLine();
for(int i =1;i<=Integer.parseInt(input);i++)
{
output+=input;
int a=Integer.parseInt(output);
s+=a;
}
System.out.println(s);
}
}
另解:
import java.io.*;
public class Sumloop {
public static void main(String[] args) throws IOException
{
int s=0;
int n;
int t=0;
BufferedReader stadin = new BufferedReader(new InputStreamReader(System.in));
String input = stadin.readLine();
n=Integer.parseInt(input);
for(int i=1;i<=n;i++){
t=t*10+n;
s=s+t;
System.out.println(t);
}
System.out.println(s);
}
}
作者:
张庚
时间:
2013-1-27 18:04
希望能帮到你
作者:
郭孟涛
时间:
2013-1-27 19:14
/*
题目:求 a+aa+aaa+…….+aaaaaaaaa=?
分析:
1. 如果a等于8,则形式如8+88+888+8888+****
2. 按照10倍数+上一数值的增加
方法:
1.求出a*10+a的数值
2.循环获取和值
3.设定一个静态方法 sum(),方便多次使用
4.定义数值a,和项数b
*/
class Test
{
public static void main(String[] args)
{
sum(8,4);
}
public static void sum(int a,int b)
{
int c;
int d ;
c = d = a ; //
while (b>1) //根据项数进行减一循环
{
a = a*10 + c ; //每次循环乘以10加固定的a初始值,这里用c代表
d = d + a ; //用d汇总每次循环的总和,因为上面的a值要保持aaa的格式不变
b--;
}
System.out.println(d); //输出合计值
}
}
复制代码
作者:
金辉
时间:
2013-1-27 19:50
import java.util.*;
class Test
{
static double sum;
static double s;
double a;
double n;
Scanner sc=new Scanner(System.in);
Test()
{
System.out.print("请输入a:");
a=sc.nextDouble();
System.out.println("请问要加多少项?");
n=sc.nextDouble();
}
double jx()
{
for(int i=0;i<n;i++)
{
s=s+a*Math.pow(10,i);
sum+=s;
}
return sum;
}
public static void main(String[] args)
{
Test t=new Test();
System.out.println(t.jx());
}
}
复制代码
作者:
金辉
时间:
2013-1-27 19:51
金辉 发表于 2013-1-27 19:50
自己试吧,没问题的
作者:
舒远
时间:
2013-1-28 14:06
本帖最后由 舒远 于 2013-1-28 14:11 编辑
private static int aaaa(int a, int i) {
return i <= 0 ? 0 : (int) (Math.pow(10, --i) * a * (a - i) + aaaa(a, i));
}
public static int add(int a){
return aaaa(a, a);
}
复制代码
递归整了一个,比循环的方式复杂点。add方法为主调方法。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2