| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1235 人关注过本帖
标题:求s=a+aa+aaa+aaaa+aa...a的值,输出结果有误
只看楼主 加入收藏
很好吃
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2015-10-14
结帖率:0
收藏
已结贴  问题点数:10 回复次数:7 
求s=a+aa+aaa+aaaa+aa...a的值,输出结果有误
求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时      共有5个数相加),几个数相加有键盘控制。

#include <stdio.h>
#include <math.h>
int main()

    long int a,n,sum=0,i,j;
    printf("please imput a and n:\n");

        scanf("%d%d",&a,&n);
        for(i=n;i>0;i--)
        {
            for(j=0;j<i;j++)
            {
                sum+=a*(pow(10,j));
            }
        }
        printf("sum=%d",sum);
    return 0;
   

}


        请问为什么 输入   2与4,输出结果是   2467
搜索更多相关主题的帖子: include please return 键盘 
2015-10-18 11:55
很好吃
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2015-10-14
收藏
得分:0 
求解答
2015-10-18 12:22
hjx1120
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:李掌柜
等 级:贵宾
威 望:41
帖 子:1314
专家分:6927
注 册:2008-1-3
收藏
得分:2 
本掌柜更好奇的是楼主的代码是怎么编译通过的
楼主可不可以教教我怎么才可以让编译器放水通过编译
2015-10-18 16:04
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:2 
这种运算一般的数据类型都会溢出

一片落叶掉进了回忆的流年。
2015-10-18 16:15
hjx1120
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:李掌柜
等 级:贵宾
威 望:41
帖 子:1314
专家分:6927
注 册:2008-1-3
收藏
得分:0 
程序代码:
//bug_a 有一个括号出轨了
//long int的整数形式是ld

#include <stdio.h>
#include <math.h>
int main()
{

    long int a,n,sum=0,i,j;
    printf("please imput a and n:\n");
    scanf("%ld%ld",&a,&n);
    for(i=n;i>0;i--)
    {
        for(j=0;j<i;j++)
        {
            sum+=a*(pow(10,j));
        }
    }
    printf("sum=%ld",sum);

    return 0;
}
2015-10-18 16:18
柳逸尘
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:80
专家分:131
注 册:2015-8-10
收藏
得分:2 
图片附件: 游客没有浏览图片的权限,请 登录注册

是对

你的程序在main()后面没有左括号
收到的鲜花
  • 很好吃2015-10-31 15:30 送鲜花  3朵  
2015-10-19 09:30
随风的飞叶
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:90
专家分:158
注 册:2015-10-8
收藏
得分:2 
不用双循环来求值。
#include<stdio.h>
#include<math.h>
main()
{
    int a,n,i=1;
    long sum=0;                  //定义各变量。
    printf("请输入a与n的值\n");
    scanf("%d%d",&a,&n);         //输入a,n
    while(i<=n)
    {
        sum=sum+a*(n-i+1)*pow(10,(i-1));
        i++;                         //求相加的各。
    }
    printf("和为%ld\n",sum);          输出。
}
2015-10-22 12:16
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9024
专家分:54030
注 册:2011-1-18
收藏
得分:2 
第一,如果限定在整型范围内,循环个鸡巴,直接用公式 sum = {[10^(n+1)-1]/9-n}/9*a
第二,这题没法用整型来存储,输入的n一大,肯定会溢出

不想用malloc来分配,就用了效率最低的递归来实现,只是个演示代码而已
程序代码:
#include <stdio.h>

void foo_( unsigned a, unsigned n, unsigned c )
{
    if( n==0 )
    {
        if( c != 0 )
            printf( "%u", c );
        return;
    }

    foo_( a, n-1, (a*n+c)/10 );
    printf( "%u", (a*n+c)%10 );
}
void foo( unsigned a, unsigned n )
{
    foo_( a, n, 0 );
    printf( "\n" );
}

int main( void )
{
    foo( 2, 5 ); // 2+22+222+2222+22222 = 24690
    foo( 9, 5 ); // 9+99+999+9999+99999 = 111105
    foo( 8, 25 ); // 9876543209876543209876520

    return 0;
}

2015-10-22 13:32
快速回复:求s=a+aa+aaa+aaaa+aa...a的值,输出结果有误
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019054 second(s), 11 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved