地板安装工月薪多少:怎么编写这个程序

来源:百度文库 编辑:神马品牌网 时间:2024/04/29 09:14:25
题目是:

求出在100和10000之间有多少个整数,它们的各位数之和等于5。

具体要求如下:

(1)根据题目要求,各位数之和等于5的三位整数是在104至500之间,符合条件的四位数是在1004至5000之间。编写函数number,来验证数字是否符合要求。

(2)编写一个主函数,调用(1)中的函数number,并输出所有符合要求的数。

(3)主函数在调用number函数时,对三位整数和四位整数分别进行调用。

(4)函数中循环采用for循环。

要用什么程序写啊?我用java写了一个
import java.io.*;
import java.util.*;

public class Number {
public static int number(int num) {
String temp = num+"x";
int sum = 0;
for(int i=0; i<temp.length()-1; i++) {
sum = sum + Integer.parseInt(temp.substring(i,i+1));
}
if(sum == 5) {
return num;
}else {
return 0;
}
}

public static void main(String args[]) throws Exception {
for(int i=104; i<5001; i++) {
if(i == 501) i=1004;
int result = number(i);
if(result == 0) continue;
else {
System.out.println(result);
}
}
}
}

我可以帮你编,但是现在我要考试了,没什么时间,虽然是很简单一个程序,你要是不急着要得话,我可以等这阵考完试在给你遍,我QQ:365426018
#include<iostream.h>
void three()
{
cout<<"符合要求的三位数有:"<<endl;
for(int i=104;i<=500;i++)
{
if((i-i%100)/100+(i%100-i%10)/10+i%10==5)
cout<<i<<endl;
}
}
void four()
{
cout<<"符合要求的四位数有:"<<endl;
for(int i=1004;i<=5000;i++)
{
if((i-i%1000)/1000+(i%1000-i%100)/100+(i%100-i%10)/10+i%10==5)
cout<<i<<endl;
}
}
void number()
{
cout<<"三位数中符合要求的是在104~500之间"<<endl;
cout<<"四位数中符合要求的是在1004~5000之间"<<endl;
three();
four();
}

void main()
{
cout<<"符合要求的数字有"<<endl;
number();
}
/*由于时间紧促,这道题不具有一般性,下面赠送给你一道方法值得你去思考一下
这个程序是把你输入的序列进行到序输出,也用到了求于的方法,不过是循环求于,具有普遍性
#include<iostream.h>
void main()
{
int a,b(0),n(10),sum(0),i;
cout<<"请输入10位以内自然数"<<endl;
cin>>a;
for(i=0;i<10&&(a-b)!=0;i++)
{
b=((a-b)*10/n)%10;
cout<<b;
sum+=b*n/10;
b=sum;
n=n*10;
}
}*/

#include <stdio.h>
void number()
{
int i,a,b,c,d;
for(i=104;i<=500;i++)
{
a=(i/100);
b=(i % 100)/10;
c=(i %100) % 10;
if(a+b+c==5)
printf("%d =%d+ %d+ %d\n",i,a,b,c);
}

printf("\n");

for(i=1004;i<=5000;i++)
{
a=(i/1000);
b=(i % 1000)/100;
c=(i % 1000 %100)/10;
d=i % 1000 % 100 % 10;

if (a+b+c+d==5)
printf("%d =%d+ %d+ %d+ %d\n",i,a,b,c,d);

}

}
main()
{
number();

}