黑马程序员技术交流社区

标题: 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+222... [打印本页]

作者: JonathanF    时间: 2016-5-21 00:54
标题: 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+222...
求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时  共有5个数相加),几个数相加有键盘控制。
作者: JonathanF    时间: 2016-5-21 01:08
顶!!!!!!!!!
作者: huzhiqiang    时间: 2016-5-21 13:33
我是这样做的,不知道有没有更简单的方法呢?
#include <stdio.h>

int main(int argc, const char * argv[]) {
    // insert code here...
    int a = 0,count = 0,sum = 0;
   
    printf("请输入a =\n");
    scanf("%d",&a);
    printf("请输入要相加多少个数:\n");
    scanf("%d",&count);
    for(int i = 0; i < count; i++)
    {
        sum+=a;
        a=a+a*10;
    }
    printf("%d个数相加的和为%d\n",count,sum);
    return 0;
}

作者: kfcmm    时间: 2016-5-21 15:54
本帖最后由 kfcmm 于 2016-5-21 16:07 编辑

这里 详细 正解

  1. #include <stdio.h>
  2. int main(int argc, const char * argv[]) {
  3.         // insert code here...
  4.         int a=0,n=0; //记录 相加的数  以及 个数
  5.         int m=0,sum=0; // 记录每次要相加的数 以及 总和
  6.         int count=1;//记录 10 的 N次方
  7.         printf("请输入a :\n");
  8.         scanf("%d",&a);
  9.         printf("请输入相加的个数:\n");
  10.         scanf("%d",&n);
  11.         for(int i = 0; i < n; i++)
  12.         {
  13.             
  14.             m=m + a*count; // 记录每一次的数值
  15.             
  16.             count=count*10; // 10 的 N次方
  17.             
  18.             sum=sum + m; // 把每一次的数值 相加
  19.         
  20.             printf("%d  ",m); // 打印每次要相加的数
  21.             
  22.         }
  23.         printf("最后相加 sum= %d\n",sum);
  24.    
  25.     return 0;
  26. }
复制代码

作者: 牛牛很牛    时间: 2016-5-21 16:23
huzhiqiang 发表于 2016-5-21 13:33
我是这样做的,不知道有没有更简单的方法呢?
#include

答案很详细




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2