题目
累计求和(初级)1149在中学时,同学们都学过从1到n求的方法是使用公式:(1+n)*n/2,现在你能自己编程实现求 n 到 m 之间(-1000〈=n〈=m<=+1000),包括n和m)整数的累加和吗?int main()(int a,b,sum=0;while(cin>>a>>b){sum=((a+b)*(b-a+1))/2;cout<<sum<<endl;)system("pause");return 0;}水仙花数(初级)1131春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的: “水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3。 现在要求输出所有在m和n范围内的水仙花数。Input #include<iostream> using namespace std;输入数据有多组,每组占一行,包括两个整数m和n(100<=m<=n<=999)。Output #include<stdio.h>对于每个测试实例,要求输出所有在给定范围内的水仙花数,就是说,输出的水仙花数必须大于等于m,并且小于等于n,如果有多个,则要求从小到大排列在一行内输出,之间用一个空格隔开 如果给定的范围内不存在水仙花数,则输出no; 每个测试实例的输出占一行。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; D. *a*a+b*b*b+c*c*c) E. { F. ) G. [n-1]<<endl;}}use");return 0;}逆序数字1282编写一个函数,接收一个整数值,返回这个数中数字逆序后的结果值。例如,给定数7631,函数返回1367.InputT(T<=10),表示有T组测试数据; 以下T行,每行一个非负的整数N。OutputT行,对于每组输入数据输出一行,即数字逆序后的结果值。in()(int t,n,i,j;in>>t;or(i=1;i<=t;i++){int sum = 0;in>>n;hile(n != 0){sum=sum*10+n%10;n=n/10;)out<<sum<<endl;}return 0;}求平均值(初级)1324nip>in()([10000];ouble s,m;vg;hile(cin>>m){s=0;or(i=0;i<m;i++){[i];[i];)out<<setprecision(2)<<fixed<<s/m<<endl;}use");return 0;}找最大最小整数(初级)1459h>in()(x,min;[100];nf("%d",n);or(i=0;i<n;i++)nf("%d",num[i]);/for(i=1;i<n;i++)[i]);x=num[0];[0];or(i=1;i<n;i++){[i]>max)x=num[i];[i]<min)[i];)n",max,min);h();return 0;}out<<i<<" ";=1;}}if(g==0)out<<"no"<<endl;}use") ;return 0;}猴子吃桃(初级)1130猴子第一天摘下若干桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第n天早上想再吃时,见只剩一个桃子了。编程求第一天至少摘下多少桃子。Input输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n<=30),n的含义如题目中描述。 n=0表示输入数据的结束,不做处理。Output对于每个测试实例,输出吃了n天时,第一天至少摘下桃子的数量。 每个输出占一行。in()(int n,i,x;nf("%d",n)!=EOFn!=0){x=1;or(i=0;i<n-1;i++)x=(x+1)*2;n",x);)h();return 0;}计算球体积(初级)1155根据输入的半径值,计算球的体积。Input输入数据有多组,每组占一行,每行包括一个实数,表示球的半径。Output输出对应的球的体积,对于每组输入数据,输出一行,计算结果保留三位小数。h>th.h>PI 3.1415927in ()(ouble r,v;nf ("%lfn",r)!=EOF){PI*r*r*r;n",v);)return 0;}求最大值(初级)1288定义一个类,找出一个整型数组中的元素的最大值InputT(T<=10),表示有T组测试数据; 以下T行,每行有n个整数(n=10)OutputT行,对于每组输入数据输出一行,即该组数据中的最大值。in()([10],max;in>>m;hile(m--){or(i=0;i<10;i++){[i];)x=a[0];or(i=1;i<10;i++)([i]>max)x=a[i];)x<<endl;}use");return 0;}最大公约数(初级)1410给定两个正整数,求它们的最大公约数。h>in()(int r,i,j,t;nf("%d%d",i,j)!=EOF){if(i<j){t=i;i=j;j=t;)r=i%j;hile(r!=0)(i=j;j=r;r=i%j;)n",j);}h();}最小公倍数(初级)1411给定两个正整数,求它们的最小公倍数。h>in()(int m;int n;int p,q;int t;hile(cin>>m>>n){p=m;q=n;if(m>n){t=m;m=n;n=t;)hile(n%m!=0)(t=n%m;n=m;m=t;)out<<(p*q)/m<<endl;}h();return 0;}练习--选择结构--判断偶数1413从键盘输入一个整数,判断其是否为偶数.in()(int i;in>>i;if(i%2==0){out<<"yes"<<endl;)lse(out<<"no"<<endl;)use");return 0;}平方和与立方和1443X)到Y(含Y)中所有偶数的平方和以及所有奇数的立方和。Input输入数据包含多组测试实例,每组测试实例包含一行,由两个整数组成。遇到0 0的时候,输入结束,退出。Output对于每组输入数据,输出一行,应包括两个整数,分别表示该段连续的整数中所有偶数的平方和以及所有奇数的立方和。in()(int x,y,i,s1,s2;hile(cin>>x>>y,x+y){s1=0,s2=0;or(i=x;i<=y;i++){if(i%2 == 0){s1=s1+i*i;)if(i%2 == 1)(s2=s2+i*i*i;)}out<<s1<<" "<<s2<<endl;}use");return 0;}_评委会打分1824青年歌手大奖赛中,评委会给参赛选手打分。选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分,请编程输出某选手的得分。Input输入数据有多组,每组占一行,每行的第一个数是n(2 < n <= 100),表示评委的人数,然后是n个评委的打分。Output对于每组输入数据,输出选手的得分,结果保留2位小数,每组输出占一行。in()(int n,i;ve;nf("%d",n)!=EOF){,b,r;nf("%lf",r);=r;=r;sum=r;or(i=1;i<n;i++){nf("%lf",t);sum=sum+t;<t)a=t;if(b>t)b=t;)-b;n=n-2;ve=sum/n;n",ave);}h();return 0;}因子之和1132in()(g=0;hile(cin>>m>>n){or(int i=m;i<=n;i++){int sum=0;or(int k=1;k<i;k++){if(i%k==0){sum=sum+k;)}if(i==sum)(g=1;out<<sum<<" ";)}g==0)(out<<"no";)out<<endl;}use");return 0;}数字求和1135从键盘任意输入一个4位数n,编程计算n的每一位数字相加之和(忽略整数前的正负号)。in()(int n;int sum=0;hile(cin>>n){sum=n%10+(n/10)%10+(n/100)%10+(n/1000)%10;if(n<0)sum=-sum;out<<sum<<endl;)return 0;use");}爱因斯坦的数学题1136爱因斯坦曾出过这样一道数学题:有一条长阶梯,若每步跨2阶,最后剩下1阶;若每步跨3阶,最后剩下2阶;若每步跨5阶,最后剩下4阶;若每步跨6阶,最后剩下5阶;只有每步跨7阶,最后才正好1阶不剩。请你写程序帮助爱因斯坦大师计算一下这条楼梯至少有多少阶。th>in()(,b,c,d,e,n,i,x;hile(cin>>nn){or(x=1;;x++){=x%2;=x%3;=x%5;=x%6;=x%7;==1)(b==2)(c==4)(d==5)(e==0)){out<<x<<endl;k;)}}use");return 0;}固定位数的制数转换1142在计算机导论中,我们学习了手工计算数制之间的转换。现在需要您编制一个程序,将任一正整数转换为 16 位二进制[1]形式。in()(int n,i,j;hile(cin>>nn){[1000]={0,);i=n;j=0;hile(i)([j]=i%2;i/=2;j++;)or(i=15;i>=0;i--)[i];out<<endl;}use");return 0;}数字游戏1143对于任意小于2的32次幂的自然数,你能编写一个程序,各位数字经过重新组合,生成一个新的自然数,使得该自然数的最大吗?例如,输入 1593 ,则输出为 9531 。th>in()(long long n;[100],i,j,t;hile(cin>>n,n){int k=0;hile(n!=0){[k]=n%10;n=n/10;[k]<<" ";k++;)or(i=0;i<k;i++)or(j=0;j<i;j++)[j]<a[i])([j];[j]=a[i];[i]=t;)or(i=0;i<k;i++)[i];out<<endl;}use");return 0;}轻轻松松背单词1144把自己记住的英语单词重新整理一下,因此他把单词按字母表的顺序排序,由于太多,太复杂,所以编写一个程序,实现单词按字母表的顺序排序。#include<cstring>struct test(r A[50];);in()(int n;[100];hile(cin>>n){if(n<=0){k;)or(int i=0;i<n;i++)([i].A;)or(int j=0;j<n;j++)(or(int k=0;k<j;k++)[j].A,pp[k].A)==-1){p(pp[j],pp[k]);)}or(int m=0;m<n;m++)([m].A<<endl;)out<<endl;}use");return 0;}菲波那契数列(初级)1259in()([40]={1,1),n,m;in>>m;hile(m--){hile(cin>>n){or(i=2;i<=39;i++){[i]=a[i-1]+a[i-2];
累计求和(初级)1149
在中学时,同学们都学过从1到n求的方法是使用公式:(1+n)*n/2,现在你能自己编程实现求 n 到 m 之间(-1000〈=n〈=m<=+1000),包括n和m)整数的累加和吗?
int main()
{
int a,b,sum=0;
while(cin>>a>>b)
{
sum=((a+b)*(b-a+1))/2;
cout<<sum<<endl;
}
system("pause");
return 0;
}
水仙花数(初级)1131
春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的: “水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3。 现在要求输出所有在m和n范围内的水仙花数。
Input #include<iostream> using namespace std;
输入数据有多组,每组占一行,包括两个整数m和n(100<=m<=n<=999)。
Output #include<stdio.h>
对于每个测试实例,要求输出所有在给定范围内的水仙花数,就是说,输出的水仙花数必须大于等于m,并且小于等于n,如果有多个,则要求从小到大排列在一行内输出,之间用一个空格隔开 如果给定的范围内不存在水仙花数,则输出no; 每个测试实例的输出占一行。
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;
D. *a*a+b*b*b+c*c*c)
E. {
F. }
G. [n-1]<<endl;
}
}
use");
return 0;
}
逆序数字1282
编写一个函数,接收一个整数值,返回这个数中数字逆序后的结果值。例如,给定数7631,函数返回1367.
Input
T(T<=10),表示有T组测试数据; 以下T行,每行一个非负的整数N。
Output
T行,对于每组输入数据输出一行,即数字逆序后的结果值。
in()
{
int t,n,i,j;
in>>t;
or(i=1;i<=t;i++)
{
int sum = 0;
in>>n;
hile(n != 0)
{
sum=sum*10+n%10;
n=n/10;
}
out<<sum<<endl;
}
return 0;
}
求平均值(初级)1324
nip>
in()
{
[10000];
ouble s,m;
vg;
hile(cin>>m)
{
s=0;
or(i=0;i<m;i++)
{
[i];
[i];
}
out<<setprecision(2)<<fixed<<s/m<<endl;
}
use");
return 0;
}
找最大最小整数(初级)1459
h>
in()
{
x,min;
[100];
nf("%d",n);
or(i=0;i<n;i++)
nf("%d",num[i]);
//for(i=1;i<n;i++)
[i]);
x=num[0];
[0];
or(i=1;i<n;i++)
{
[i]>max)
x=num[i];
[i]<min)
[i];
}
\n",max,min);
h();
return 0;
}
out<<i<<" ";
=1;
}
}
if(g==0)
out<<"no"<<endl;
}
use") ;
return 0;
}
猴子吃桃(初级)1130
猴子第一天摘下若干桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第n天早上想再吃时,见只剩一个桃子了。编程求第一天至少摘下多少桃子。
Input
输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n<=30),n的含义如题目中描述。 n=0表示输入数据的结束,不做处理。
Output
对于每个测试实例,输出吃了n天时,第一天至少摘下桃子的数量。 每个输出占一行。
in()
{
int n,i,x;
nf("%d",n)!=EOFn!=0)
{
x=1;
or(i=0;i<n-1;i++)
x=(x+1)*2;
\n",x);
}
h();
return 0;
}
计算球体积(初级)1155
根据输入的半径值,计算球的体积。
Input
输入数据有多组,每组占一行,每行包括一个实数,表示球的半径。
Output
输出对应的球的体积,对于每组输入数据,输出一行,计算结果保留三位小数。
h>
th.h>
PI 3.1415927
in ()
{
ouble r,v;
nf ("%lf\n",r)!=EOF)
{
PI*r*r*r;
\n",v);
}
return 0;
}
求最大值(初级)1288
定义一个类,找出一个整型数组中的元素的最大值
Input
T(T<=10),表示有T组测试数据; 以下T行,每行有n个整数(n=10)
Output
T行,对于每组输入数据输出一行,即该组数据中的最大值。
in()
{
[10],max;
in>>m;
hile(m--)
{
or(i=0;i<10;i++)
{
[i];
}
x=a[0];
or(i=1;i<10;i++)
{
[i]>max)
x=a[i];
}
x<<endl;
}
use");
return 0;
}
最大公约数(初级)1410
给定两个正整数,求它们的最大公约数。
h>
in()
{
int r,i,j,t;
nf("%d%d",i,j)!=EOF)
{
if(i<j)
{
t=i;
i=j;
j=t;
}
r=i%j;
hile(r!=0)
{
i=j;
j=r;
r=i%j;
}
\n",j);
}
h();
}
最小公倍数(初级)1411
给定两个正整数,求它们的最小公倍数。
h>
in()
{
int m;
int n;
int p,q;
int t;
hile(cin>>m>>n)
{
p=m;
q=n;
if(m>n)
{
t=m;m=n;n=t;
}
hile(n%m!=0)
{
t=n%m;
n=m;
m=t;
}
out<<(p*q)/m<<endl;
}
h();
return 0;
}
练习--选择结构--判断偶数1413
从键盘输入一个整数,判断其是否为偶数.
in()
{
int i;
in>>i;
if(i%2==0)
{
out<<"yes"<<endl;
}
lse
{
out<<"no"<<endl;
}
use");
return 0;
}
平方和与立方和1443
X)到Y(含Y)中所有偶数的平方和以及所有奇数的立方和。
Input
输入数据包含多组测试实例,每组测试实例包含一行,由两个整数组成。遇到0 0的时候,输入结束,退出。
Output
对于每组输入数据,输出一行,应包括两个整数,分别表示该段连续的整数中所有偶数的平方和以及所有奇数的立方和。
in()
{
int x,y,i,s1,s2;
hile(cin>>x>>y,x+y)
{
s1=0,s2=0;
or(i=x;i<=y;i++)
{
if(i%2 == 0)
{
s1=s1+i*i;
}
if(i%2 == 1)
{
s2=s2+i*i*i;
}
}
out<<s1<<" "<<s2<<endl;
}
use");
return 0;
}
_评委会打分1824
青年歌手大奖赛中,评委会给参赛选手打分。选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分,请编程输出某选手的得分。
Input
输入数据有多组,每组占一行,每行的第一个数是n(2 < n <= 100),表示评委的人数,然后是n个评委的打分。
Output
对于每组输入数据,输出选手的得分,结果保留2位小数,每组输出占一行。
in()
{
int n,i;
ve;
nf("%d",n)!=EOF)
{
,b,r;
nf("%lf",r);
=r;
=r;
sum=r;
or(i=1;i<n;i++)
{
nf("%lf",t);
sum=sum+t;
<t)a=t;
if(b>t)b=t;
}
-b;
n=n-2;
ve=sum/n;
\n",ave);
}
h();
return 0;
}
因子之和1132
in()
{
g=0;
hile(cin>>m>>n)
{
or(int i=m;i<=n;i++)
{
int sum=0;
or(int k=1;k<i;k++)
{
if(i%k==0)
{
sum=sum+k;
}
}
if(i==sum)
{
g=1;
out<<sum<<" ";
}
}
g==0)
{
out<<"no";
}
out<<endl;
}
use");
return 0;
}
数字求和1135
从键盘任意输入一个4位数n,编程计算n的每一位数字相加之和(忽略整数前的正负号)。
in()
{
int n;
int sum=0;
hile(cin>>n)
{
sum=n%10+(n/10)%10+(n/100)%10+(n/1000)%10;
if(n<0)
sum=-sum;
out<<sum<<endl;
}
return 0;
use");
}
爱因斯坦的数学题1136
爱因斯坦曾出过这样一道数学题:有一条长阶梯,若每步跨2阶,最后剩下1阶;若每步跨3阶,最后剩下2阶;若每步跨5阶,最后剩下4阶;若每步跨6阶,最后剩下5阶;只有每步跨7阶,最后才正好1阶不剩。请你写程序帮助爱因斯坦大师计算一下这条楼梯至少有多少阶。
th>
in()
{
,b,c,d,e,n,i,x;
hile(cin>>nn)
{
or(x=1;;x++)
{
=x%2;
=x%3;
=x%5;
=x%6;
=x%7;
==1)(b==2)(c==4)(d==5)(e==0))
{
out<<x<<endl;
k;
}
}
}
use");
return 0;
}
固定位数的制数转换1142
在计算机导论中,我们学习了手工计算数制之间的转换。现在需要您编制一个程序,将任一正整数转换为 16 位二进制[1]形式。
in()
{
int n,i,j;
hile(cin>>nn)
{
[1000]={0,};
i=n;
j=0;
hile(i)
{
[j]=i%2;
i/=2;
j++;
}
or(i=15;i>=0;i--)
[i];
out<<endl;
}
use");
return 0;
}
数字游戏1143
对于任意小于2的32次幂的自然数,你能编写一个程序,各位数字经过重新组合,生成一个新的自然数,使得该自然数的最大吗?例如,输入 1593 ,则输出为 9531 。
th>
in()
{
long long n;
[100],i,j,t;
hile(cin>>n,n)
{
int k=0;
hile(n!=0)
{
[k]=n%10;
n=n/10;
[k]<<" ";
k++;
}
or(i=0;i<k;i++)
or(j=0;j<i;j++)
[j]<a[i])
{
[j];
[j]=a[i];
[i]=t;
}
or(i=0;i<k;i++)
[i];
out<<endl;
}
use");
return 0;
}
轻轻松松背单词1144
把自己记住的英语单词重新整理一下,因此他把单词按字母表的顺序排序,由于太多,太复杂,所以编写一个程序,实现单词按字母表的顺序排序。
#include<cstring>
struct test
{
r A[50];
};
in()
{
int n;
[100];
hile(cin>>n)
{
if(n<=0)
{
k;
}
or(int i=0;i<n;i++)
{
[i].A;
}
or(int j=0;j<n;j++)
{
or(int k=0;k<j;k++)
[j].A,pp[k].A)==-1)
{
p(pp[j],pp[k]);
}
}
or(int m=0;m<n;m++)
{
[m].A<<endl;
}
out<<endl;
}
use");
return 0;
}
菲波那契数列(初级)1259
in()
{
[40]={1,1},n,m;
in>>m;
hile(m--)
{
hile(cin>>n)
{
or(i=2;i<=39;i++)
{
[i]=a[i-1]+a[i-2];
题目解答
答案
因子之和 1132