解题思路注意事项:


这个题的思路是:


首先确定n,是有几项相加,然后利用for()循环n次进行相加;


其次就是每次计算时要加的项,也就是几个2,我的方法是:

        1、先定义a=0;

        2、由于后一项都比前一项多一个2,所以a=a*10+2,因为a的值为0,所以当n=1的时候,a=2;

        3、求和将每个a都加上就可以了。


需要注意的是for()循环里面的表达式,循环的次数一定注意不要出错就没问题了。

参考代码:

#include<stdio.h>
int main()
{
	int n,Sn = 0,i,a = 0;
	scanf("%d",&n);
	for(i=0; i<n; i++){
		a = a * 10 + 2;
		Sn = Sn + a;
	}
	printf("%d\n",Sn);
	return 0;
}


 

0.0分

149 人评分

  评论区

为啥不能写成int a,Sn,i,n=0
2023-09-20 23:24:22
为啥
2023-09-20 23:23:33
#include<stdio.h>
#include<math.h>
int main()
{
    int a,sn=0,i,n;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        a=(2.0/9)*(pow(10,i)-1);
        sn=sn+a;
    }
    printf("%d\n",sn);
	return 0;
}
2022-10-06 21:10:30
#include <stdio.h>
#include <math.h>

int Calculate(int n);

int main(void)
{
    int num = 0;
    scanf("%d" ,&num);
    int sum  = 0;
    for(int i = 1;i <=num;i++)
    {
        sum += Calculate(i);
    }
    printf("%d\n",sum);
}

int Calculate(int n)
{
    if(n==0)
    {
        return 0;        
    }
    else
    {
        return 2 * pow(10 ,(n-1)) + Calculate(n - 1);
    }
}
2022-05-23 22:05:43
#include<stdio.h>

#include<math.h>

int main()

{
	int n;
	
	scanf("%d",&n);
	
	int i=1;
	
	int j=1;
	
	int z=0;
	
	for(j=1;j<=n;j++){
		
		int s=0,x=0;
	
	for(i=1;i<=j;i++){
		
		x=2*pow(10,i-1);
		
		s+=x;
		
	}
	
	z+=s;
}
		printf("%d",z);	
	
	return 0;
 } 
求教为什么运行错误??
2022-02-10 19:38:06
int main()
{
	int n,a=2;
	int x = 0, y = 0;
	int Sn = 0;
	scanf("%d", &n);
	for (int i = 0; i < n + 1; i++)
	{
		x = a * (pow(10, i - 1));
		y = y + x;
		Sn = Sn + y;
	}
	printf("%d", Sn);
	return 0;
}
2022-01-28 12:01:34
#include<stdio.h>
#include<math.h>
int n;
      	scanf("%d",&n);
      	int sn=0,s=0;
      	int i;
      	for(i=1;i<=n;i++)
      	{
      		s+=2*pow(10,i-1);
      		sn+=s; 
		  }
		  printf("%d",sn);
2022-01-26 10:53:42
#include<stdio.h>
int main()
{
    int a=2,n,sn=0,i;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        sn=a+sn;
        a=a*10+2;
    }
    printf("%d",sn);
    return 0;
}
2022-01-22 21:20:55