湖畔读书人


私信TA

用户名:2814787590

访问量:41358

签 名:

等  级
排  名 37
经  验 7816
参赛次数 0
文章发表 42
年  龄 0
在职情况 学生
学  校 武汉东湖学院
专  业

  自我简介:

解题思路注意事项:


这个题的思路是:


首先确定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分

34 人评分

  评论区

#include <stdio.h>
#include <math.h>
int main()
{
	int a,b,c=0,sum=0;;
	scanf("%d",&a);
	for(b=0;b<a;b++)
	{
	    if(b==0)
	    c=2;
          if(b!=0)
	    c=pow(10,b)*2+c;
	    sum+=c;
	}
	printf("%d",sum);
	
	
	
   return 0;
}
我这个为什么a是3的时候就变成245了,求教
2019-11-22 16:50:51 | |
#include <stdio.h>

int paa(int n)
{
    if (n <= 1)
        return 2;
    else
        return 10 * paa(n - 1) + 2;
}

int main()
{
    int *p, b[100], c, sum, *i, k = 1;
    scanf("%d", &c);
    for (i = b + 1; i <= b + c; i++)
    {
        *i = paa(k++);
    }

    for (p = b + 1; p <= b + c; p++)
    {
        sum += *p;
    }
    printf("%d", sum);
    return 0;
}
求大神帮指点一下哪里错了,在编译器上输出的是正确答案
2019-11-02 21:39:08 | |
#include<stdio.h>
int main()
{
  int n,Sn=0,i;
  scanf("%d",&n);
  for(i=1;i<=n;i++)
  {Sn+=2*i*1e10*(i-1);}
  printf("%d\n",Sn);
	return 0;
}

请问这样编不行吗?麻烦教教我,谢谢!
2019-07-06 11:19:35 | |
我这个结果都对,为什么也显示答案错误。。
#include <stdio.h>
#include <math.h>
int main()
{
	int i,n,j,a1,a=0,Sn=0;
	scanf("%d",&n);
	for(j=1;j<=n;j++)
	{
		for(i=0;i<j;i++)
		{
			a1=2*pow(10,i);
			a=a1+a;

		}
	//	printf("%d\n",a);

		
	}
	Sn=a+Sn;
	printf("Sn=%d\n",Sn);
	return 0;
}
2019-06-10 13:44:00 | |
#include <stdio.h>
#include <math.h>
int main()
{
	int i,n,j,a1,a=0,Sn=0;
	scanf("%d",&n);
	for(j=1;j<=n;j++)
	{
		for(i=0;i<j;i++)
		{
			a1=2*pow(10,i);
			a=a1+a;

		}
	//	printf("%d\n",a);

		
	}
	Sn=a+Sn;
	printf("Sn=%d\n",Sn);
	return 0;
}
2019-06-10 13:43:20 | |
由于后一项都比前一项多一个2,所以a=a*10+2
你这不对。
假如n是5,按你算法最后一个a就是20002?
2018-09-16 08:51:38 | |
i<n什么时候成立随着输入的n值变化而变化,太巧妙了。
2018-05-23 18:20:36 | |
#include<stdio.h>
int main()
{
    int n,i,j,Sn,a=2,an;
    Sn=0;
    printf("输入n的值\n");
    scanf("%d",&n);
    for(i=1;i<=n;i++)
	{
		an=0;
        for(j=1;j<=i;j++)
		   an=an*10+a;
		Sn=Sn+an;
	}
    printf("%d\n",Sn);
    return 0;
}

为什么结果对总是显示答案错误
2018-05-10 16:36:18 | |
  • «
  • 1
  • »