注册 登录
编程论坛 C++教室

求助 高手帮帮忙 万分感谢

dr0526 发布于 2009-10-03 22:35, 1086 次点击
编一个程序,求100到1000之间有多少个整数,其各个数位数字之和等于5
11 回复
#2
flyingcloude2009-10-03 22:43
现在手头没有什么编译器,程序没有编译过,不过应该没有什么大问题,参考下吧

#include<iostream>
using namespace std;

int main()
{
    int begin =100,end=1000;
    int count = 0;
    for(int i=begin;i<=end;i++)
    {
        int sum = 0,temp = i;
        while(i>0)
        {
            sum +=temp%10;
            temp/=10;
        }
        if(sum==5)
            count++;
    }
    cout<<count<<'\n';
}
#3
xxcc3092009-10-07 16:59
楼上的大意了,现做出一些修改:
#include<iostream>
using namespace std;
 
int main()
{
    int begin =100,end=1000;
    int count = 0;
    for(int i=begin;i<=end;i++)
    {
        int sum = 0,temp = i;
       // while(i>0)
        while(temp>0)
        {
            sum +=temp%10;
            temp/=10;
        }
        if(sum==5)
            count++;
    }
    cout<<count<<'\n';
    return 0;
}
#4
flyingcloude2009-10-07 17:34
回复 3楼 xxcc309
是的,谢谢了
#5
最左边那个2009-10-08 19:53
#include <iostream.h>
void main()
{
    int i=0,a,b,c;
    for(int j=100;j<=1000;j++)
    {
        a=j/100;
        b=(j-a*100)/10;
        c=j-a*100-b*10;
        if((a+b+c)%5==0)
            i++;
 
    }
    cout<<"100到1000之间各个数位数字之和等于5的个数有:"<<i<<endl;;
}
#6
最左边那个2009-10-08 19:59
晕死,我看成了5的倍数

符合楼主要求的应该是下面这个
#include <iostream.h>  
void main()  
{  
    int i=0,a,b,c;  
    for(int j=100;j<=1000;j++)  
    {  
        a=j/100;  
        b=(j-a*100)/10;  
        c=j-a*100-b*10;  
        if(a+b+c==5)  
            i++;  
 
    }  
    cout<<"100到1000之间各个数位数字之和等于5的个数有:"<<i<<endl;;  
}
#7
最左边那个2009-10-08 20:05
回复 2楼 flyingcloude
跟你的比起来,我的基本没什么技术含量啊,看来以后要多多请教你了,还望不吝赐教
#8
flyingcloude2009-10-08 20:54
回复 7楼 最左边那个
夸奖了
#9
songxj322009-10-28 16:50
我也是编写的东西没有技术含量
#10
Ckay2009-10-29 03:40
我有个问题,如果在之后要把这十五个数字依次输出要怎么做?再循环一次吗?
#11
jekdu2009-11-01 21:50
版主写的那个程序,我在vc6坏境下能运行但是没有结果啊!怎么回事?
#12
jekdu2009-11-01 21:58
可以这样做:

#include <iostream.h>  
void main()  
{  
    int i=0,a,b,c,d;  
    for(int j=100;j<=1000;j++)  
    {  
        a=j/100;  
        b=(j-a*100)/10;  
        c=j-a*100-b*10;  
        if(a+b+c==5)  
        {i++;  
            d=100*a+10*b+c;
            cout<<d<<'\t';}

    }  
    cout<<"100到1000之间各个数位数字之和等于5的个数有:"<<i<<endl;;  
}
1