求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。
程序员文章站
2022-03-21 08:58:40
...
题目:求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。输出结果的形式如:2+22+222=246;
程序分析:关键是计算出每一项的值。
比如获取的数字为:a,出现的项数为:n
总结一下,可以得到一下规律:
1、第一项有一个a,最后一项有n个a
2、 第1和第2项相差2*10,第2和第三项相差2*100,第k和第k+1项相差2*(10的k次方)
public class Test1{
public static void main(String[] args) {
int n=0,a=0;
Scanner scanner=new Scanner(System.in);
System.out.println("请输入a的值:");
a=scanner.nextInt();
System.out.println("请输入n的值:");
n=scanner.nextInt();
int[] arr=new int[n];//创建数组长度为输入的项数
int i=1;//while循环初始化的值
arr[0]=a;//数组的第一个值为3
//把每一项的值赋值给数组里面的数
while (i<n) {
a*=10;
arr[i]=a+arr[i-1];
i++;
}
//求和
int sum=0;
for(int s:arr){
sum+=s;//累加求和
if (s==arr[n-1]) {
System.out.print(s);
break;//最后一次只输出结果
}
System.out.print(s+"+");//前面的值输出结果,后面还要加一个加号
}
System.out.println("="+sum);//完美结束
}
}
上一篇: 最小化数据传输——在客户端存储数据
下一篇: 条件语句case:求所有满足如下条件的四位数:千位上的数字大于百位数字,百位数字大于十位数字,十位数字大于个位数字,并 且千位数字是其他三位数字的和。
推荐阅读
-
编程实现对一个元素全为数字的列表,求最大值、最小值(回炉笔记)
-
把1316这个数表示成两个数的和,其中一个为13的倍数,另一个是11的倍数,求这两个数。
-
求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制
-
java求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+2....
-
求Sn=a+aa+aaa+……+aa…a之值,其中a是一个数字,n表示a的位数
-
用C语言求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字
-
求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,
-
求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字
-
C语言程序,求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,例如:2+22+222+2222+22222
-
1)的累加和(累乘积(阶乘))。其中n的值从键盘输入。输入一个2000年以后的年份n,输出所有介于2">
PTA判断输入的整数是否是素数,如果是则输出"1",否则输出"0." 编写程序,求自然数1至n(n>1)的累加和(累乘积(阶乘))。其中n的值从键盘输入。输入一个2000年以后的年份n,输出所有介于2