数字逆序
【问题描述】输入一个int型的整数num,逆向输出其各位数字,同时求出其位数以及各位数字之和。
【输入形式】输入一个整数。
【输出形式】结果为三行,第一行为逆向数字,第二行为各位数字之和,第三行为数字位数。
【样例输入】
1000
【样例输出】
0001
1
4
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int N,Sum_a=0,t=0;
cin>>N;
if (N==0) cout<<N<<endl;
while (N>0)
{
cout<<N % 10;
Sum_a+=N % 10;
N=N/10;
t++;
}
cout<<endl<<Sum_a<<endl<<t<<endl;
}
顺便附上字符串的做法(其实没啥区别 )
#include<iostream>
#include<cmath>
#include<string>
using namespace std;
int main()
{
int s_length,i=-1,Sum_a=0;
string s;
cin>>s;
i = s_length = s.length();
while (--i>=0)
{
Sum_a+=s[i]-'0';
cout<<s[i];
}
cout<<endl<<Sum_a<<endl<<s_length<<endl;
}
猴子吃桃问题
【问题描述】猴子第1天摘了若干个桃子,当即吃了一半,还不解馋,又多吃了一个。第2天,吃剩下的桃子的一半,还不过瘾,又多吃了一个。以后每天都吃前一天剩下的一半多一个,到第n天想再吃时,只剩下一个桃子了。请问第一天共摘了多少个桃子?
【输入形式】剩下一个桃子的天数n。
【输出形式】第一天共摘的桃子个数。
【样例输入】10
【样例输出】1534
【样例说明】只需输入和输出数据,不要有多余字符出现。
【ps】 An=(An-1+1)*2
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int N,Sum_a=1;
cin>>N;
for (int i=2;i<=N;i++) Sum_a=(Sum_a+1)*2;
cout<<Sum_a<<endl;
}
百鸡问题
【问题描述】n元买100只鸡,公鸡每只5元,母鸡每只3元,小鸡每只1/3元,设公鸡、母鸡、小鸡的数量分别记为x,y,z,求所有可能的解。
【输入形式】标准输入,总钱数n
【输出形式】标准输出,输出x y z 的值,按照x,y,z依次增大顺序输出
【样例输入】
100
【样例输出】
x=0,y=25,z=75
x=4,y=18,z=78
x=8,y=11,z=81
x=12,y=4,z=84
【样例说明】每行一个解,注意逗号为英文字符,每行数据顶格输出。
【简化版】
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int N;
cin>>N;
for (int i=0;i<=100;i++)
for (int j=0;j<=100;j++)
if ((i+j+(N-i*5-j*3)*3)==100) cout<<"x="<<i<<",y="<<j<<",z="<<(N-i*5-j*3)*3<<endl;
}
【简单优化版】
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int N;
cin>>N;
for (int i=0;i<=N/5;i++)
for (int j=0;j<=(N-i*5)/3;j++)
if ((i+j+(N-i*5-j*3)*3)==100) cout<<"x="<<i<<",y="<<j<<",z="<<(N-i*5-j*3)*3<<endl;
}
比赛对阵策略
【问题描述】两个乒乓球队进行比赛,各出三人。甲队为A,B,C三人,乙队为X,Y,Z三人。以抽签决定比赛名单。有人向队员打听比赛的名单。A说他不和X比,C说他不和X,Z比,请编程找出三对赛手间的对阵情况。
【输入形式】无
【输出形式】标准输出,三对赛手对阵对阵情况,每对内部用“–”隔开,每对间使用一个空格隔开。
【样例输入】
【样例输出】A–Z B–X C–Y
【样例说明】注意输出格式,空格和回车不要出现混乱。
【ps】不用试了,直接输出算错
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
for (char i='X';i<='Z';i++)
for (char j='X';j<='Z';j++)
for (char k='X';k<='Z';k++)
if (i!='X'&&k!='X'&&k!='Z'&&i!=j&&j!=k&&i!=k) cout<<"A--"<<i<<" B--"<<j<<" C--"<<k<<endl;
}