当前位置: 代码迷 >> C语言 >> 请帮我解一道题,谢谢
  详细解决方案

请帮我解一道题,谢谢

热度:121   发布时间:2007-12-15 22:43:10.0
请帮我解一道题,谢谢
编写程序计算并输出:1 + 22 + 333 + 4444 + 55555 + 666666 + 7777777 + 88888888 + 999999999的前n(0<n<10)项的和,n从键盘输入。例如,
输入:6
输出:727021
搜索更多相关的解决方案: 编写  输出  

----------------解决方案--------------------------------------------------------
#include <stdio.h>
#include <math.h>


void main()
{
    int i;
    int j;
    int n;
    double result;

    result = 0;

    printf("enter a number:\n");

    scanf("%d", &n);

    for(i = 0; i <= n; i++)
        for(j = 1; j <= i; j++)
            result += i * pow(10, (i - j));

        printf("result = %f\n", result);
}
----------------解决方案--------------------------------------------------------
2楼算法不错

/* 可以这样,更容易理解些  */
    for(i = 1; i <= n; i++)
        for(j = 0; j < i; j++)
            result += i * pow(10, j);


-
-

[[italic] 本帖最后由 cosdos 于 2007-12-15 23:35 编辑 [/italic]]
----------------解决方案--------------------------------------------------------
pow是什么啊?还没学到呀,能不能不用POW编?
pow是什么啊?还没学到呀,能不能不用POW编?
----------------解决方案--------------------------------------------------------
double pow(double a,double b)是求a^b(a的b次方),函数是查的,不是每个都会学的!
----------------解决方案--------------------------------------------------------
楼上说的没错.
----------------解决方案--------------------------------------------------------
  相关解决方案