三天打鱼 发表于 2018-4-14 22:02:42

为什么答案不对啊

求Sn=a+aa+aaa+…+aa…aaa(有n个a)之值,其中a是一个数字。 例如:2+22+222+2222+22222(n=5),a,n由键盘输入。
#include<stdio.h>
main()
{
int i,a,y=0,x,n,Sn=0;
scanf("%d,%d",&a,&n);
for(i=0;i<n;i++)
{
x=10^i;
y=x*a+y;
Sn=Sn+y;
}
printf("%d",Sn);
}

溯影 发表于 2018-4-14 22:30:50

for循环中的第一行,x = 10^i这个是数学上的公式,C语言里这个是位运算里的哦,要想乘方的话可以#include<math.h>,然后用这个库里的pow函数哦,自行百度pow函数用法哦

风过无痕丶 发表于 2018-4-15 09:05:57

好像昨天才回答了一个类似的问题,不知道你学函数没有。 没学的话或许你可以这样写。
#include <stdio.h>

int main(void){

        printf("请输入x值与n值(以空格分隔): ");

        double a, n;
        scanf("%lf %lf", &a, &n);

        double f = 1;

        for (int i = 0; i < n; i++) {
                f *= a;
        }

        printf("值是: %lf\n", f);

        return 0;
}

549444387@qq.co 发表于 2018-4-15 16:09:37

#include <stdio.h>
#include <math.h>
void main()
{
        int s = 2 , n, i, sum = 0;
        printf("请输入n的值: \n");
        scanf("%d", &n);
        for( i = 1; i <= n; i++)
        {
                sum = sum + s;
                s = s + 2 * pow(10,(double)i);
        }
        printf("sum=%d\n", sum);
}

aishan_22498 发表于 2018-4-17 14:33:12

(emmm,s,n都是按整数算的。)
#include <stdio.h>
#include <math.h>
void main()
{
      int s , n, i,t, sum = 0;
      scanf("%d%d", &s,&n);
      t = s;
      for( i = 1; i <= n; i++)
      {
                sum = sum + s;
                s = t + s * pow(10,1);
               
      }
      printf("sum=%d\n", sum);
}

枫以如斯 发表于 2018-4-18 09:31:44

除了2楼说的pow函数,还可以参照以下代码:
#include<stdio.h>

int main(void)
{
        int a,b,n,Sn = 0;
        printf("Input a AND n:\n");
        scanf("%d%d",&a,&n);
        b = a;
        for (; n >= 1; n--)
        {
                Sn = Sn + a;
                a = a*10 + b;
        }
        printf("%d\n",Sn );
        return 0;
}
页: [1]
查看完整版本: 为什么答案不对啊