求s=a+aa+aaa+aaaa... ....的值,其中a是在0到9之间的整数。
分析:
以2为例:
第一个数:2
第二个数:20+2
第三个数:200+20+2
第四个数:2000+200+20+2
... ...
由上面例子可以看出数与数之间是有联系的,最开始我想的是嵌套循环,但写起来很麻烦,后来得到高人指点后,发现把简单的问题进行了复杂化;
让初始值temp等于0:
0*10+2=2;
再把这个得到的数重新赋值给temp;
temp=temp*10+2;
一行顶十行。
其余就是累加的知识了。
考虑到一个数再小循环相加无数次,量变会引起质变,所以计算结果采用长整型。
代码如下:
Scanner sc=new Scanner(System.in);
System.out.println("请输入循环次数:");
int n=sc.nextInt();
int sum=0;
System.out.println("请输入初始数据值(1到9):");
int a=sc.nextInt();
long num=0;
if(a>9||a<1) {
System.out.println("输入有误!!!");
}else {
for(int i=1;i<=n;i++) {
num=num*10+a;
sum+=num;
System.out.print(num);
if(i<n) {
System.out.print("+");
}
}
System.out.println();
System.out.print("相加次数为:"+n+",数据值为:"+a+",计算结果为:"+sum);
}
运行截图: