一、水仙花数(初级)1131
春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的:
“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3。
现在要求输出所有在m和n范围内的水仙花数。
Input
输入数据有多组,每组占一行,包括两个整数m和n(100<=m<=n<=999)。
Output
对于每个测试实例,要求输出所有在给定范围内的水仙花数,就是说,输出的水仙花数必须大于等于m,并且小于等于n,如果有多个,则要求从小到大排列在一行内输出,之间用一个空格隔开;
如果给定的范围内不存在水仙花数,则输出no;
每个测试实例的输出占一行。
Sample Input
100 120
300 380
Sample Output
no
370 371
#include<iostream>
using namespace std;
int main()
{
int m,n,i,a,b,c,g=0;
while(cin>>m>>n)
{
for(i=m;i<=n;i++)
{
a=i/100;
b=(i/10)%10;
c=i%10;
if(i==a*a*a+b*b*b+c*c*c)
{
cout<<i<<" ";
g=1;
}
}
if(g==0)
cout<<"no"<<endl;
}
return 0;
}
#include<iostream>
using namespace std;
int main()
{
int m,n,i,a,b,c,g=0;
while(cin>>m>>n)
{
for(i=m;i<=n;i++)
{
a=i/100;
b=(i/10)%10;
c=i%10;
if(i==a*a*a+b*b*b+c*c*c)
{
cout<<i<<" ";
g=1;
}
}
if(g==0)
cout<<"no"<<endl;
}
return 0;
}
二、因子之和1132
数论中有这样一个数,这个数恰好等于它的因子之和。称为“完数”。现在要求输出所有在m和n范围内的完数。
Input
输入数据有多组,每组占一行,包括两个整数m和n(1<=m<=n<=9999)
Output
对于每个测试实例,要求输出所有在给定范围内的完数,就是说,输出的完数必须大于等于m,并且小于等于n,如果有多个,则要求从小到大排列在一行内输出,之间用一个空格隔开;
如果给定的范围内不存在完数,则输出no;
每个测试实例的输出占一行。
Sample Input
1 100
100 200
Sample Output
6 28
no
#include<iostream>
using namespace std;
int main()
{
int m,n,flag=0;
while(cin>>m>>n)
{
for(int i=m;i<=n;i++)
{
int sum=0;
for(int k=1;k<i;k++)
{
if(i%k==0)
{
sum=sum+k;
}
}
if(i==sum)
{
flag=1;
cout<<sum<<" ";
}
}
if(flag==0)
{
cout<<"no";
}
cout<<endl;
}
return 0;
}
三、数字求和1135
从键盘任意输入一个4位数n,编程计算n的每一位数字相加之和(忽略整数前的正负号)。
Input
有多个测试用例,每行一个4位数。
Output
对应输入的每个用例,输出数字位数之和。
Sample Input
1234
-5678
Sample Output
10
26
#include<iostream>
using namespace std;
int main()
{
int n;
int sum=0;
while(cin>>n)
{
sum=n%10+(n/10)%10+(n/100)%10+(n/1000)%10;
if(n<0)
sum=-sum;
cout<<sum<<endl;
}
return 0;
}
四、爱因斯坦的数学题1136
爱因斯坦曾出过这样一道数学题:有一条长阶梯,若每步跨2阶,最后剩下1阶;若每步跨3阶,最后剩下2阶;若每步跨5阶,最后剩下4阶;若每步跨6阶,最后剩下5阶;只有每步跨7阶,最后才正好1阶不剩。请你写程序帮助爱因斯坦大师计算一下这条楼梯至少有多少阶。
Input
输入一个不等于0的正整数,当等于0时结束。
注意:该数字与运算结果无关。
Output
输出楼梯至少有的台阶数。
Sample Input
10
0
Sample Output
119
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int a,b,c,d,e,n,i,x;
while(cin>>n&&n)
{
for(x=1;;x++)
{
a=x%2;
b=x%3;
c=x%5;
d=x%6;
e=x%7;
if((a==1)&&(b==2)&&(c==4)&&(d==5)&&(e==0))
{
cout<<x<<endl;
break;
}
}
}
//system("pause");
return 0;
}
五、固定位数的制数转换1142
在计算机导论中,我们学习了手工计算数制之间的转换。现在需要您编制一个程序,将任一正整数转换为 16 位二进制形式。
Input
由键盘输入至少一组测试数据,每组测试数据包括一个正整数n(1<=n<=65535),当遇到0时结束并不做处理。
Output
输出正整数n所对应的 16 位二进制数。
Sample Input
144
100
0
Sample Output
0000000010010000
0000000001100100
#include<iostream>
using namespace std;
int main()
{
int n,i,j;
while(cin>>n&&n)
{
bool a[1000]={0,};
i=n;
j=0;
while(i)
{
a[j]=i%2;
i/=2;
j++;
}
for(i=15;i>=0;i--)
cout<<a[i];
cout<<endl;
}
//system("pause");
return 0;
}
六、数字游戏1143
对于任意小于2的32次幂的自然数,你能编写一个程序,各位数字经过重新组合,生成一个新的自然数,使得该自然数的最大吗?例如,输入 1593 ,则输出为 9531 。
Input
由键盘输入至少一组测试数据,每组测试数据均包括一个自然数 n(n<=2^32),当遇到0时结束并不做处理。
Output
输出每组测试数据的各位数字组成的最大自然数。
Sample Input
40120
123456
654123
2147483646
0
Sample Output
42100
654321
654321
8766444321
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
long long n;
int a[100],i,j,t;
while(cin>>n,n)
{
int k=0;
while(n!=0)
{
a[k]=n%10;
n=n/10;
//cout<<a[k]<<" ";
k++;
}
for(i=0;i<k;i++)
for(j=0;j<i;j++)
if(a[j]<a[i])
{
t=a[j];
a[j]=a[i];
a[i]=t;
}
for(i=0;i<k;i++)
cout<<a[i];
cout<<endl;
}
//system("pause");
return 0;
}
七、轻轻松松背单词1144
现在小明本科马上就要毕业了,他不忙着去找工作,想继续学习,出国深造。所以他要把自己记住的英语单词重新整理一下,看自己已经记住了多少,因此他把单词按字母表的顺序排序,由于太多,太复杂,所以想请您帮忙编写一个程序,实现单词按字母表的顺序排序。你能做到吗?
Input
由键盘输入至少一组测试数据,每组测试数据均包括一个正整数 n 和 n 个字符串,请将n个字符串按从小到大的顺序排列后输出。当输入为0时结束并不做处理。
Output
对每组测试数据,按从小到大的顺序输出 n 个字符串,每个字符串占一行,每组测试用例之间用空行分隔。
Sample Input
4
china
beijing
nanjing
shanghai
3
sport
bed
linux
0
Sample Output
beijing
china
nanjing
shanghai
bed
linux
sport
#include<iostream>
#include<cstring>
using namespace std;
struct test
{
char A[50];
};
int main()
{
int n;
test pp[100];
while(cin>>n)
{
if(n<=0)
{
break;
}
for(int i=0;i<n;i++)
{
cin>>pp[i].A;
}
for(int j=0;j<n;j++)
{
for(int k=0;k<j;k++)
if(strcmp(pp[j].A,pp[k].A)==-1)
{
swap(pp[j],pp[k]);
}
}
for(int m=0;m<n;m++)
{
cout<<pp[m].A<<endl;
}
cout<<endl;
}
return 0;
}
八、插入字符串1146
有两个字符串str和substr,str的字符个数不超过10,substr的字符个数为3。(字符个数不包括字符串结尾处的''。)将substr插入到str中ASCII码最大的那个字符后面,若有多个最大则只考虑第一个。
Input
输入包括若干行,每一行为一组测试数据,格式为
str substr
Output
对于每一组测试数据,输出插入之后的字符串。
Sample Input
abcab eee
12343 555
Sample Output
abceeeab
12345553
#include<iostream>
using namespace std;
int main()
{
char str[14],substr[4];
int l,max,n,i;
while(cin>>str>>substr)
{
l=strlen(str);
max=str[0];n=0;
for(i=0;i<l;i++)
{
if(str[i]>max)
{
max=str[i];
//cout<<i<<" ";
n=i;
}
}
for(i=l+3;i>=n+4;i--)
{
str[i]=str[i-3];
}
str[n+1]=substr[0];
str[n+2]=substr[1];
str[n+3]=substr[2];
cout<<str<<endl;
}
return 0;
}
九、累计求和(初级)1149
在中学时,同学们都学过从1到n求的方法是使用公式:(1+n)*n/2,现在你能自己编程实现求 n 到 m 之间(-1000〈=n〈=m<=+1000),包括n和m)整数的累加和吗?
Input
由键盘输入至少一组测试数据,每组测试数据均包括一个整数n 和一个整数m,且满足(-1000〈=n〈=m<=+1000),n和m用空格分隔。
Output
对输入的每一组测试数据,在一行输出从n到m的和,每组输出结果各占一行。
Sample Input
1 5
1 10
-5 5
-1 3
Sample Output
15
55
0
5
#include<iostream>
using namespace std;
int main()
{
int a,b,sum=0;
while(cin>>a>>b)
{
sum=((a+b)*(b-a+1))/2;
cout<<sum<<endl;
}
return 0;
}
十、
计算球体积(初级)1155
根据输入的半径值,计算球的体积。
Input
输入数据有多组,每组占一行,每行包括一个实数,表示球的半径。
Output
输出对应的球的体积,对于每组输入数据,输出一行,计算结果保留三位小数。
Sample Input
1
1.5
Sample Output
4.189
14.137
Hint
#define PI 3.1415927
#include<stdio.h>
#include<conio.h>
#include<math.h>
#define PI 3.1415927
int main ()
{
double r,v;
while(scanf ("%lfn",&r)!=EOF)
{
v=4.0/3*PI*r*r*r;
printf("%.3lfn",v);
}
//getch();
return 0;
}
十一、菲波那契数列(初级)1259
菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。
给出一个正整数a,要求菲波那契数列中第a个数是多少。
Input
第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a(1 <= a <= 20)
Output
输出有n行,每行输出对应一个输入。输出应是一个正整数,为菲波那契数列中第a个数的大小
Sample Input
4
5
2
19
1
Sample Output
5
1
4181
1
#include<iostream>
using namespace std;
int main()
{
int i,a[40]={1,1},n,m;
cin>>m;
while(m--)
{
while(cin>>n)
{
for(i=2;i<=39;i++)
{
a[i]=a[i-1]+a[i-2];
}
cout<<a[n-1]<<endl;
}
}
//system("pause");
return 0;
}
十二、逆序数字1282
编写一个函数,接收一个整数值,返回这个数中数字逆序后的结果值。例如,给定数7631,函数返回1367.
Input
第一行一个正整数T(T<=10),表示有T组测试数据; 以下T行,每行一个非负的整数N。
Output
共T行,对于每组输入数据输出一行,即数字逆序后的结果值。
Sample Input
3
7631
101
51
Sample Output
1367
101
15
#include<iostream>
using namespace std;
int main()
{
int t,n,i,j;
cin>>t;
for(i=1;i<=t;i++)
{
int sum = 0;
cin>>n;
while(n != 0)
{
sum=sum*10+n%10;
n=n/10;
}
cout<<sum<<endl;
}
return 0;
}
十三、求最大值(初级)1288
#include<iostream>
using namespace std;
main()
{
int i,n,m,a[10],max;
cin>>m;
while(m--)
{
for(i=0;i<10;i++)
{
cin>>a[i];
}
max=a[0];
for(i=1;i<10;i++)
{
if(a[i]>max)
max=a[i];
}
cout<<max<<endl;
}
//system("pause");
return 0;
}
十四、ASCII码排序(初级)1290
#include<iostream>
#include<stdlib.h>
#include<string.h>
#include <algorithm>
using namespace std;
int cmp(const void*a,const void*b)
{
return *(char*)a-*(char*)b;
}
int main()
{
char ch[10];
int i,j,p,q,m,n;
while(cin>>ch)
{
qsort(ch,3,sizeof(ch[0]),cmp);
for(i=0;i<3;i++)
{
cout<<ch[i]<<" ";
}
cout<<endl;
}
//system("pause");
return 0;
}
十五、计算两点间的距离(初级)1291
#include<iostream>
#include<cmath>
#include<iomanip>
using namespace std;
int main()
{
double d,x1,y1,x2,y2;
while(cin>>x1>>y1>>x2>>y2)
{
d = sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
cout<<setprecision(2)<<fixed<<d<<endl;
}
cout<<endl;
return 0;
}
十六、成绩转换(初级)1293
#include<stdio.h>
#include<conio.h>
int main()
{
char grade;
int score,temp;
scanf("%d",&score);
if(score>100||score<0)
printf("Score is error!n");
else
{
temp=score/10;
switch (temp)
{
case 10:
case 9:grade='A';break;
case 8:grade='B';break;
case 7:grade='C';break;
case 6:grade='D';break;
default: grade='E';
}
}
printf("%cn",grade);
//getch ();
return 0;
}
十七、求平均值(初级)1324
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int i,a[10000];
double s,m;
double avg;
while(cin>>m)
{
s=0;
for(i=0;i<m;i++)
{
cin>>a[i];
s=s+a[i];
}
cout<<setprecision(2)<<fixed<<s/m<<endl;
}
return 0;
}
十八、首字母大写1401
#include<iostream>
using namespace std;
int main()
{
char ch[10000];
int i,j,m,n,l;
while(gets(ch))
{
l=strlen(ch);
if(ch[0]>='a'&&ch[0]<='z')
{
ch[0]=ch[0]-32;
}
for(i=1;i<l-1;i++)
{
if(ch[i]==' '&&(ch[i+1]>='a'&&ch[i+1]<='z'))
{
ch[i+1]=ch[i+1]-32;
}
}
for(i=0;i<l;i++)
{
cout<<ch[i];
}
cout<<endl;
}
}
十九、最大公约数(初级)1410
#include<stdio.h>
#include<conio.h>
int main()
{
int r,i,j,t;
while(scanf("%d%d",&i,&j)!=EOF)
{
if(i<j)
{
t=i;
i=j;
j=t;
}
r=i%j;
while(r!=0)
{
i=j;
j=r;
r=i%j;
}
printf("%dn",j);
}
// getch();
}
二十、最小公倍数(初级)1411
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
int m;
int n;
int p,q;
int t;
while(cin>>m>>n)
{
p=m;
q=n;
if(m>n)
{ m n
t=m;m=n;n=t; 3 7
}
while(n%m!=0) 7 3
{
t=n%m;
n=m;
m=t;
}
cout<<(p*q)/m<<endl;
}
//getch();
return 0;
}
二十一、公共C练习--选择结构--判断偶数
1413
#include <iostream>
using namespace std;
int main ()
{
int n;
cin >>n;
if (n % 2 == 0)
{
cout<<"yes"<<endl;
}
else
cout<<"no"<<endl;
return 0;
}
二十二、新成绩排名1421
#include<iostream>
using namespace std;
struct student
{
char num[100];
int score;
int paiming;
}stu[100];
int main()
{
int m,n,i,j,k;
char a[100];
while(cin>>m)
{
for(i=0;i<m;i++)
{
cin>>stu[i].num>>stu[i].score;
stu[i].paiming=i+1;
}
for(i=0;i<m;i++)
{
for(j=0;j<i;j++)
{
if(stu[j].score<stu[i].score)
{
k=stu[j].score;
stu[j].score=stu[i].score;
stu[i].score=k;
strcpy(a,stu[j].num);//a=stu[j].num;
strcpy(stu[j].num,stu[i].num);//stu[j].num=stu[i].num;
strcpy(stu[i].num,a);//stu[i].num=a;
}
}
}
for(i=0;i<m;i++)
{
cout<<stu[i].num<<" "<<stu[i].score<<endl;
}
}
//system("pause");
return 0;
}
二十三、统计大写字母(初级)1423
#include<iostream>
using namespace std;
int main()
{
char ch[100];
int b,l,i;
while(gets(ch))
{
l=strlen(ch);
b=0;
for(i=0;i<l;i++)
{
if(ch[i]>='A'&&ch[i]<='Z')
b++;
}
cout<<b<<endl;
}
//system("pause");
return 0;
}
二十四、删除字符
1432
#include <iostream>
using namespace std;
int main()
{
char a[10],b;
int i;
cin>>a;
cin>>b;
for(i=0;i<strlen(a);i++)
{
if(a[i]!=b)
cout<<a[i];
}
cout<<endl;
}
二十五、[:字母重排1434
#include<iostream>
#include<stdlib.h>
using namespace std;
int cmp(const void*a,const void*b)
{
return *(char *)a- *(char*)b;
}
int main()
{
char ch[10000],ch1[10000];
int i,j,m,n,p,q;
while(gets(ch))
{
p=0;
int l=strlen(ch);
for(i=0;i<l;i++)
{
if(ch[i]>='a'&&ch[i]<='z')
{
ch1[p]=ch[i];
p++;
}
}
qsort(ch1,p,sizeof(ch1[0]),cmp);
cout<<ch1<<endl;
}
//system("pause");
return 0;
}
二十六、统计元音字母1438
#include <stdio.h>
#include <string.h>
#include <conio.h>
int main ()
{
int a,e,i,o,u,k,j;
char ch[1025];
gets (ch);
a=0;e=0;i=0;o=0;u=0;k=0;j=0;
while(ch[k]!='')
{
if (ch[k]=='a')
a++;
else if(ch[k]=='e')
e++;
else if (ch[k]=='i')
i++;
else if (ch[k]=='o')
o++;
else if (ch[k]=='u')
u++;
k++;
j=a+e+i+o+u;
}
printf("%dn",j);
//getch();
return 0;
}
二十七、平方和与立方和1443
#include<iostream>
using namespace std;
int main()
{
int x,y,i,s1,s2;
while(cin>>x>>y,x+y)
{
s1=0,s2=0;
for(i=x;i<=y;i++)
{
if(i%2 == 0)
{
s1=s1+i*i;
}
if(i%2 == 1)
{
s2=s2+i*i*i;
}
}
cout<<s1<<" "<<s2<<endl;
}
return 0;
}
二十八、找最大最小整数(初级)1459
#include<stdio.h>
#include<conio.h>
int main()
{
int i,n,max,min;
int num[100];
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&num[i]);
//for(i=1;i<n;i++)
//printf("%5d",num[i]);
max=num[0];
min=num[0];
for(i=1;i<n;i++)
{
if(num[i]>max)
max=num[i];
if(num[i]<min)
min=num[i];
}
printf("%d %dn",max,min);
//getch();
return 0;
}
最后
以上就是怕黑诺言最近收集整理的关于水仙花数--转载的全部内容,更多相关水仙花数--转载内容请搜索靠谱客的其他文章。
发表评论 取消回复