2+22+222+2222+22222

求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);
	}

运行截图:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值