本程序使用循环思维编程,在输入任意的数字n(1~12),都可以计算出 2 + 22 + 222 + ...... + 222...222的结果。
其中测试用例有:
n = 1 , result = 2;
n = 2 , result = 24;
n = 3 , result = 246;
n = 4 , result = 2468;
n = 5 , result = 24690;
n = 6 , result = 246912;
......
n = 12 , result = 2100444372;
其中测试用例有:
n = 1 , result = 2;
n = 2 , result = 24;
n = 3 , result = 246;
n = 4 , result = 2468;
n = 5 , result = 24690;
n = 6 , result = 246912;
......
n = 12 , result = 2100444372;
但当 n = 13 , result = -470392734;超出了计算机的运算范围。
#include<stdio.h>
#include<stdlib.h>
int fun(int n); //计算循环过程中的结果
int result(int n); //计算每次检测最终结果
int main(void)
{
int sum = 0 ;
int n ;
int flag = 1 ; //标志位,是否继续测试代码
while(flag)
{
printf("please input the number: ");
scanf("%d", &n);
sum = result(n);
printf("the result number is : %d \n" , sum); // 检测结果
printf("Whether to continue testing, yes 1 no 0 : ");
scanf("%d" , &flag); //是否继续检测,是 输入 1 ,否 输入 0
}
// printf("%d\n",sum);
system("PAUSE");
return 0;
}
int result(int n)
{
int sum = 0;
for(int i = 1 ; i <= n ; i++)
{
sum = sum+ fun(i);
}
return sum ;
}
int fun(int n)
{
int sum = 0 ;
int temp = 0 ;
for(int i = 1 ; i <= n ; i++)
{
temp = temp*10 + 2 ;
}
return temp ;
}