早晨嘴发苦怎么回事:C语言习题求解

来源:百度文库 编辑:高考问答 时间:2024/04/28 20:38:42
1,一个数如果恰好等于它的因子之和,这个数就称为”完数”.如6=1+2+3.编程找出1000之内的所有完数,并按下面格式输出其因子:6 its factors are 1,2,3.
2,A,B,C要与X,Y,Z比赛.已抽签决定比赛名单.A不和X比,C不和X,Z比,编程找出3对赛手的名单.
3,给一个不多于5位的正整数,要求:
(1)求出它是几位数;
(2)分别输出每一位数字;
(3)按逆序输出各位数字.
我不会C++

这种题要自己编 这也要问别人
给你点提示:
1。构建个函数求数的因子
2。主函数里循环判断 是完数 输出

第二题就是个排列组合的问题 做出排列组合 然后根据条件筛选 然后输出

第三题 这样的题就用 % / 来到东 呵呵
1。循环整除结果为0 结束 得到位数
2。用% / 来到东
3。颠倒位置输出。。。。。

加油吧 有不会的来信 gabmyd@126.com

悬赏太少,给我一百我帮你编,不难嘛~~

1 完数
#include <iostream.h>

int main(int argc, char *argv[])
{
int sum;
for(int i=6;i<1000;i++){
sum = 1;
for(int j=2;j<=i/2;j++){
if(i%j == 0) sum+=j;
}
if(i == sum) cout<<i<<", ";
}
cout<<" end!"<<endl;

return 0;
}

c++的:)
自己多想想把
1)
#include <iostream>
#include <vector>
using namespace std;

void fun(int num)
{
for(int i=2;i<=num;++i)
{
int sum=0;
vector< int > temp;
temp.clear();
for(int j=1;j<=i/2;++j)
{
if(!(i%j))
{
sum+=j;
temp.push_back(j);
if(sum>i)
{
break;
}
}
}
if(i==sum)
{
cout<<i<<" its factors are ";
for(vector< int >::iterator it=temp.begin();it!=temp.end();++it)
{
cout<<*it;
if(it!=temp.end()-1)
{
cout<<",";
}
}
cout<<".\n";
}
}
}

int main()
{
fun(1000);
return 0;
}
2)用不着编程把
C不和X,Z比==>C和Y比
A不和X比==>A和Z比==>B和X比。。。
3)
#include <iostream>
#include <sstream>
#include <string>
using namespace std;

void fun(int num)
{
stringstream sstr;
string str;
sstr<<num;
sstr>>str;
cout<<"length:"<<str.length()<<endl;
for(int i=0;i<str.length();++i)
{
cout<<str[i]<<" ";
}
cout<<endl;
for(int j=str.length()-1;j>=0;--j)
{
cout<<str[j]<<" ";
}
}

int main()
{
fun(3453);
return 0;
}

这个不难,楼主应该自己编写,否则一直不能进步的....