2+22+222+2222+...+222..222(精确计算)

题目描述

2+22+222+2222+...+222..222(精确计算) 

题目分析

如果指定基数为2,次数为5, 则求2+22+222+2222+22222的值,我们从每一项中可以总结出规律:

项数n  值a  拆分
1 2 0*10+2=2
2 22 2*10+2=22
3 222 22*10+2=222
4 2222 2222*10+2=2222
5 22222 22222*10+2=22222
... .... .....
n 2222222…  [第(n-1)项的a]*10+a

 
 
首先我们需要设定两个变量,分别为a和sum。

变量a是用来存放计算出来每一项所对应的值,而变量sum则是起到了一个累加的作用。
每当变量a进行完运算后都会存放到变量sum当中,这里的sum起到了一个累加器的作用,最终输出变量sum就可以了。

代码编写

#include

int main() {
	int x,number;
	int a=0,sum=0;
	printf("输入基数x:"); 
	scanf("%d",&x);
	printf("输入项数number:"); 
	scanf("%d",&number);
	
	for(int n=1; n<=number; n++) {
		a=(a*10)+x;
		sum+=a;
	}
	printf("sum: %d",sum);

}

测试结果如下 

2+22+222+2222+...+222..222(精确计算)_第1张图片

你可能感兴趣的:(算法设计与分析)