C语言循环求解

超人不会掉眼泪 2017-08-04 03:23:56
求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
怎么用for循环?
...全文
373 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
likun541 2017-08-19
  • 打赏
  • 举报
回复
#include "stdafx.h" #include <iostream> #include<cmath> using namespace std; int main() { int count=0; int add = 0; int sum = 0; cout << "请输入一个数:" << endl; cin >> count; for (int i=0;i<count;i++) { add+= count*pow(10, i); sum += add; } cout << sum << endl; return 0; }
fussier 2017-08-08
  • 打赏
  • 举报
回复

int main(int argc, char* argv[])
{
    const int DEFAULT_NUM = 2;
    int res = 0, maxTimes = 0, num = 0;

    printf("please inupt max times:");
    scanf("%d", &maxTimes);

    for (int i = 0; i < maxTimes; ++i)
    {
        num =num * 10 + DEFAULT_NUM;
        res += num;
    }

    printf("result is %d\n", res);

    system("pause");
    return EXIT_SUCCESS;
}
赵4老师 2017-08-07
  • 打赏
  • 举报
回复
“给定一个小点的输入,完整单步跟踪(同时按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史)一遍。”是理解递归函数工作原理的不二法门! 递归函数关注以下几个因素 ·退出条件 ·参数有哪些 ·返回值是什么 ·局部变量有哪些 ·全局变量有哪些 ·何时输出 ·会不会导致堆栈溢出
赵4老师 2017-08-07
  • 打赏
  • 举报
回复
仅供参考:
//给定一个数组a[9]={'a','b','c','1','2','3','!','@','#'},
//要求程序启动后提示输入整数n(0<n<9),根据输入整数进行输出,
//输出规则为:从一行一字符到n行n字符遍历数组中所有字符,比如:
//n=1,则输出:
//a,b,c,1,2,3,!,@,#
//n=2.则如下输出:
//a,b,c,1,2,3,!,@,#
//aa,ab,ac,a1,a2,a3,a!,a@,a#,ba,bb,bc,b1,b2,b3,b!,b@,b#,ca,cb,cc,c1,c2,c3,c!,c@,c#,1a,1b,1c,11,12,13,1!,1@,1#,2a,2b,2c,21,22,23,2!,2@,2#,3a,3b,3c,31,32,33,3!,3@,3#,!a,!b,!c,!1,!2,!3,!!,!@,!#,@a,@b,@c,@1,@2,@3,@!,@@,@#,a,#b,#c,#1,#2,#3,#!,#@,##
//……
#include <stdio.h>
char a[9]={'a','b','c','1','2','3','!','@','#'};
char t[9];
void out(int m,int L) {
    int i;
    if (m==L) {
        for (i=0;i<m;i++) printf("%c",t[i]);
        for (i=0;i<m;i++) if ('#'!=t[i]) break;
        if (i<m) printf(",");
        return;
    }
    for (i=0;i<9;i++) {
        t[L]=a[i];
        out(m,L+1);
    }
}
void out1_n(int n) {
    int m;

    for (m=1;m<=n;m++) {
        out(m,0);
        printf("\n");
    }
}
int main() {
    int n;

    while (1) {
        printf("Input n(0<n<9):");
        fflush(stdout);
        rewind(stdin);
        if (1==scanf("%d",&n)) {
            if (0<n && n<9) break;
        }
    }
    out1_n(n);
    return 0;
}
//Input n(0<n<9):1
//a,b,c,1,2,3,!,@,#
//
//Input n(0<n<9):2
//a,b,c,1,2,3,!,@,#
//aa,ab,ac,a1,a2,a3,a!,a@,a#,ba,bb,bc,b1,b2,b3,b!,b@,b#,ca,cb,cc,c1,c2,c3,c!,c@,c#,1a,1b,1c,11,12,13,1!,1@,1#,2a,2b,2c,21,22,23,2!,2@,2#,3a,3b,3c,31,32,33,3!,3@,3#,!a,!b,!c,!1,!2,!3,!!,!@,!#,@a,@b,@c,@1,@2,@3,@!,@@,@#,#a,#b,#c,#1,#2,#3,#!,#@,##
//
//Input n(0<n<9):3
//a,b,c,1,2,3,!,@,#
//aa,ab,ac,a1,a2,a3,a!,a@,a#,ba,bb,bc,b1,b2,b3,b!,b@,b#,ca,cb,cc,c1,c2,c3,c!,c@,c#,1a,1b,1c,11,12,13,1!,1@,1#,2a,2b,2c,21,22,23,2!,2@,2#,3a,3b,3c,31,32,33,3!,3@,3#,!a,!b,!c,!1,!2,!3,!!,!@,!#,@a,@b,@c,@1,@2,@3,@!,@@,@#,#a,#b,#c,#1,#2,#3,#!,#@,##
//aaa,aab,aac,aa1,aa2,aa3,aa!,aa@,aa#,aba,abb,abc,ab1,ab2,ab3,ab!,ab@,ab#,aca,acb,acc,ac1,ac2,ac3,ac!,ac@,ac#,a1a,a1b,a1c,a11,a12,a13,a1!,a1@,a1#,a2a,a2b,a2c,a21,a22,a23,a2!,a2@,a2#,a3a,a3b,a3c,a31,a32,a33,a3!,a3@,a3#,a!a,a!b,a!c,a!1,a!2,a!3,a!!,a!@,a!#,a@a,a@b,a@c,a@1,a@2,a@3,a@!,a@@,a@#,a#a,a#b,a#c,a#1,a#2,a#3,a#!,a#@,a##,baa,bab,bac,ba1,ba2,ba3,ba!,ba@,ba#,bba,bbb,bbc,bb1,bb2,bb3,bb!,bb@,bb#,bca,bcb,bcc,bc1,bc2,bc3,bc!,bc@,bc#,b1a,b1b,b1c,b11,b12,b13,b1!,b1@,b1#,b2a,b2b,b2c,b21,b22,b23,b2!,b2@,b2#,b3a,b3b,b3c,b31,b32,b33,b3!,b3@,b3#,b!a,b!b,b!c,b!1,b!2,b!3,b!!,b!@,b!#,b@a,b@b,b@c,b@1,b@2,b@3,b@!,b@@,b@#,b#a,b#b,b#c,b#1,b#2,b#3,b#!,b#@,b##,caa,cab,cac,ca1,ca2,ca3,ca!,ca@,ca#,cba,cbb,cbc,cb1,cb2,cb3,cb!,cb@,cb#,cca,ccb,ccc,cc1,cc2,cc3,cc!,cc@,cc#,c1a,c1b,c1c,c11,c12,c13,c1!,c1@,c1#,c2a,c2b,c2c,c21,c22,c23,c2!,c2@,c2#,c3a,c3b,c3c,c31,c32,c33,c3!,c3@,c3#,c!a,c!b,c!c,c!1,c!2,c!3,c!!,c!@,c!#,c@a,c@b,c@c,c@1,c@2,c@3,c@!,c@@,c@#,c#a,c#b,c#c,c#1,c#2,c#3,c#!,c#@,c##,1aa,1ab,1ac,1a1,1a2,1a3,1a!,1a@,1a#,1ba,1bb,1bc,1b1,1b2,1b3,1b!,1b@,1b#,1ca,1cb,1cc,1c1,1c2,1c3,1c!,1c@,1c#,11a,11b,11c,111,112,113,11!,11@,11#,12a,12b,12c,121,122,123,12!,12@,12#,13a,13b,13c,131,132,133,13!,13@,13#,1!a,1!b,1!c,1!1,1!2,1!3,1!!,1!@,1!#,1@a,1@b,1@c,1@1,1@2,1@3,1@!,1@@,1@#,1#a,1#b,1#c,1#1,1#2,1#3,1#!,1#@,1##,2aa,2ab,2ac,2a1,2a2,2a3,2a!,2a@,2a#,2ba,2bb,2bc,2b1,2b2,2b3,2b!,2b@,2b#,2ca,2cb,2cc,2c1,2c2,2c3,2c!,2c@,2c#,21a,21b,21c,211,212,213,21!,21@,21#,22a,22b,22c,221,222,223,22!,22@,22#,23a,23b,23c,231,232,233,23!,23@,23#,2!a,2!b,2!c,2!1,2!2,2!3,2!!,2!@,2!#,2@a,2@b,2@c,2@1,2@2,2@3,2@!,2@@,2@#,2#a,2#b,2#c,2#1,2#2,2#3,2#!,2#@,2##,3aa,3ab,3ac,3a1,3a2,3a3,3a!,3a@,3a#,3ba,3bb,3bc,3b1,3b2,3b3,3b!,3b@,3b#,3ca,3cb,3cc,3c1,3c2,3c3,3c!,3c@,3c#,31a,31b,31c,311,312,313,31!,31@,31#,32a,32b,32c,321,322,323,32!,32@,32#,33a,33b,33c,331,332,333,33!,33@,33#,3!a,3!b,3!c,3!1,3!2,3!3,3!!,3!@,3!#,3@a,3@b,3@c,3@1,3@2,3@3,3@!,3@@,3@#,3#a,3#b,3#c,3#1,3#2,3#3,3#!,3#@,3##,!aa,!ab,!ac,!a1,!a2,!a3,!a!,!a@,!a#,!ba,!bb,!bc,!b1,!b2,!b3,!b!,!b@,!b#,!ca,!cb,!cc,!c1,!c2,!c3,!c!,!c@,!c#,!1a,!1b,!1c,!11,!12,!13,!1!,!1@,!1#,!2a,!2b,!2c,!21,!22,!23,!2!,!2@,!2#,!3a,!3b,!3c,!31,!32,!33,!3!,!3@,!3#,!!a,!!b,!!c,!!1,!!2,!!3,!!!,!!@,!!#,!@a,!@b,!@c,!@1,!@2,!@3,!@!,!@@,!@#,!#a,!#b,!#c,!#1,!#2,!#3,!#!,!#@,!##,@aa,@ab,@ac,@a1,@a2,@a3,@a!,@a@,@a#,@ba,@bb,@bc,@b1,@b2,@b3,@b!,@b@,@b#,@ca,@cb,@cc,@c1,@c2,@c3,@c!,@c@,@c#,@1a,@1b,@1c,@11,@12,@13,@1!,@1@,@1#,@2a,@2b,@2c,@21,@22,@23,@2!,@2@,@2#,@3a,@3b,@3c,@31,@32,@33,@3!,@3@,@3#,@!a,@!b,@!c,@!1,@!2,@!3,@!!,@!@,@!#,@@a,@@b,@@c,@@1,@@2,@@3,@@!,@@@,@@#,@#a,@#b,@#c,@#1,@#2,@#3,@#!,@#@,@##,#aa,#ab,#ac,#a1,#a2,#a3,#a!,#a@,#a#,#ba,#bb,#bc,#b1,#b2,#b3,#b!,#b@,#b#,#ca,#cb,#cc,#c1,#c2,#c3,#c!,#c@,#c#,#1a,#1b,#1c,#11,#12,#13,#1!,#1@,#1#,#2a,#2b,#2c,#21,#22,#23,#2!,#2@,#2#,#3a,#3b,#3c,#31,#32,#33,#3!,#3@,#3#,#!a,#!b,#!c,#!1,#!2,#!3,#!!,#!@,#!#,#@a,#@b,#@c,#@1,#@2,#@3,#@!,#@@,#@#,##a,##b,##c,##1,##2,##3,##!,##@,###
//
jena_wy 2017-08-07
  • 打赏
  • 举报
回复
先把每个数计算出来,然后相加。
自信男孩 2017-08-07
  • 打赏
  • 举报
回复
引用 2 楼 u010273433 的回复:
当输入5时,运行结果是:sum = 2 + 22 + 222 + 2222 + 22222 并没有算出结果,为什么呢?
想计算结果也是可以的,定义sum,然后输出sum就可以了。
Snaks 2017-08-07
  • 打赏
  • 举报
回复
当输入5时,运行结果是:sum = 2 + 22 + 222 + 2222 + 22222 并没有算出结果,为什么呢?
自信男孩 2017-08-04
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <math.h>

int main(void)
{
    int num;
    int i, j;
    unsigned long long digit = 0;

    scanf("%d", &num);

    if (num >= 1 && num <= 10)
        printf("sum = 2 ");
    digit = 2;
    for (i = 1; i < num; i++) {
        digit += 2 * (int)pow(10, i);
        printf("+ %llu ", digit);
    }

    return 0;
}
注意越界

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧