1. 程式人生 > >2+22+222+2222+...+222..222(精確計算)

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<stdio.h>

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

}

測試結果如下