OJ复习题

更新时间:2024-05-04 20:48:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

10信管 5201 丁

累计求和(初级)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<

system(\ return 0; }

水仙花数(初级)1131

春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的: “水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3。 现在要求输出所有在m和n范围内的水仙花数。 Input #include using namespace std;

输入数据有多组,每组占一行,包括两个整数m和n(100<=m<=n<=999)。 Output #include

对于每个测试实例,要求输出所有在给定范围内的水仙花数,就是说,输出的水仙花数必须大于等于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); c=i;

if(i==a*a*a+b*b*b+c*c*c) {

cout<

if(g==0) cout<<\ }

1

10信管 5201 丁

system(\ return 0; }

猴子吃桃(初级)1130

猴子第一天摘下若干桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第n天早上想再吃时,见只剩一个桃子了。编程求第一天至少摘下多少桃子。 Input

输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0

对于每个测试实例,输出吃了n天时,第一天至少摘下桃子的数量。 每个输出占一行。

int main() {

int n,i,x;

while(scanf(\ { x=1;

for(i=0;i

printf(\ }

getch();

return 0; }

计算球体积(初级)1155

根据输入的半径值,计算球的体积。 Input

输入数据有多组,每组占一行,每行包括一个实数,表示球的半径。 Output

输出对应的球的体积,对于每组输入数据,输出一行,计算结果保留三位小数。

#include #include #define PI 3.1415927 int main () {

double r,v;

while(scanf (\ {

v=4.0/3*PI*r*r*r; printf(\ }

return 0;

2

10信管 5201 丁

}

求最大值(初级)1288

定义一个类,找出一个整型数组中的元素的最大值 Input

第一行一个正整数T(T<=10),表示有T组测试数据; 以下T行,每行有n个整数(n=10) Output

共T行,对于每组输入数据输出一行,即该组数据中的最大值。

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<

system(\ return 0; }

最大公约数(初级)1410

给定两个正整数,求它们的最大公约数。

#include int main() {

int r,i,j,t;

while(scanf(\ {

if(i

t=i; i=j; j=t; }

r=i%j;

while(r!=0)

3

10信管 5201 丁

{

i=j; j=r; r=i%j; } printf(\ } getch(); }

最小公倍数(初级)1411

给定两个正整数,求它们的最小公倍数。

#include int main() {

int m; int n; int p,q; int t;

while(cin>>m>>n) {

p=m; q=n; if(m>n)

{ t=m;m=n;n=t; }

while(n%m!=0) {

t=n%m; n=m; m=t; }

cout<<(p*q)/m<

getch(); return 0; }

公共C练习--选择结构--判断偶数1413

从键盘输入一个整数,判断其是否为偶数.

int main() {

int i; cin>>i; if(i%2==0)

4

10信管 5201 丁

{

cout<<\ } else {

cout<<\ }

system(\ return 0; }

平方和与立方和1443

给定两个正整数X和Y,求出从X(含X)到Y(含Y)中所有偶数的平方和以及所有奇数的立方和。 Input

输入数据包含多组测试实例,每组测试实例包含一行,由两个整数组成。遇到0 0的时候,输入结束,退出。 Output

对于每组输入数据,输出一行,应包括两个整数,分别表示该段连续的整数中所有偶数的平方和以及所有奇数的立方和。

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<

}

system(\ return 0; }

青年歌手大奖赛_评委会打分1824

青年歌手大奖赛中,评委会给参赛选手打分。选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分,请编程输出某选手的得分。 Input

输入数据有多组,每组占一行,每行的第一个数是n(2 < n <= 100),表示评委的人数,然后是n个评委的打分。 Output

5

10信管 5201 丁 对于每组输入数据,输出选手的得分,结果保留2位小数,每组输出占一行。

int main() {

int n,i;

double sum,ave;

while(scanf(\ {

double t,a,b,r; scanf(\ a=r; b=r; sum=r;

for(i=1;i

scanf(\ sum=sum+t; if(at)b=t; }

sum=sum-a-b; n=n-2;

ave=sum/n;

printf(\ }

getch(); return 0; }

因子之和1132

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

if(i%k==0) {

sum=sum+k; } }

if(i==sum)

6

10信管 5201 丁

{

flag=1;

cout<

if(flag==0) {

cout<<\ }

cout<

system(\return 0; }

数字求和1135

从键盘任意输入一个4位数n,编程计算n的每一位数字相加之和(忽略整数前的正负号)。

int main() {

int n;

int sum=0; while(cin>>n) {

sum=n+(n/10)+(n/100)+(n/1000); if(n<0) sum=-sum;

cout<

return 0;

system(\}

爱因斯坦的数学题1136

爱因斯坦曾出过这样一道数学题:有一条长阶梯,若每步跨2阶,最后剩下1阶;若每步跨3阶,最后剩下2阶;若每步跨5阶,最后剩下4阶;若每步跨6阶,最后剩下5阶;只有每步跨7阶,最后才正好1阶不剩。请你写程序帮助爱因斯坦大师计算一下这条楼梯至少有多少阶。

#include 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;

7

10信管 5201 丁

e=x%7;

if((a==1)&&(b==2)&&(c==4)&&(d==5)&&(e==0)) {

cout<

system(\ return 0; }

固定位数的制数转换1142

在计算机导论中,我们学习了手工计算数制之间的转换。现在需要您编制一个程序,将任一正整数转换为 16 位二进制形式。

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<

system(\ return 0; }

数字游戏1143

对于任意小于2的32次幂的自然数,你能编写一个程序,各位数字经过重新组合,生成一个新的自然数,使得该自然数的最大吗?例如,输入 1593 ,则输出为 9531 。

#include int main() {

long long n; int a[100],i,j,t;

while(cin>>n,n) {

int k=0; while(n!=0)

8

10信管 5201 丁

{

a[k]=n; n=n/10;

//cout<

for(i=0;i t=a[j]; a[j]=a[i]; a[i]=t; }

for(i=0;i system(\ return 0; }

轻轻松松背单词1144

把自己记住的英语单词重新整理一下,因此他把单词按字母表的顺序排序,由于太多,太复杂,所以编写一个程序,实现单词按字母表的顺序排序。

#include struct test { char A[50]; };

int main() { int n; test pp[100]; while(cin>>n) { if(n<=0) { break; } for(int i=0;i>pp[i].A; } for(int j=0;j

9

10信管 5201 丁

if(strcmp(pp[j].A,pp[k].A)==-1) { swap(pp[j],pp[k]); } } for(int m=0;m

system(\ return 0; }

菲波那契数列(初级)1259

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<

system(\ return 0; }

逆序数字1282

编写一个函数,接收一个整数值,返回这个数中数字逆序后的结果值。例如,给定数7631,函数返回1367. Input

第一行一个正整数T(T<=10),表示有T组测试数据; 以下T行,每行一个非负的整数N。 Output

共T行,对于每组输入数据输出一行,即数字逆序后的结果值。

int main() {

int t,n,i,j; cin>>t;

for(i=1;i<=t;i++) {

int sum = 0;

10

10信管 5201 丁

cin>>n;

while(n != 0) {

sum=sum*10+n; n=n/10; }

cout<

求平均值(初级)1324

#include int main() {

int i,a[10000]; double s,m; double avg; while(cin>>m) {

s=0;

for(i=0;i

cin>>a[i];

s=s+a[i]; }

cout<

system(\ return 0; }

找最大最小整数(初级)1459

#include int main() {

int i,n,max,min; int num[100];

scanf(\ for(i=0;i

scanf(\ //for(i=1;i

//printf(\ max=num[0]; min=num[0]; for(i=1;i

if(num[i]>max)

11

10信管 5201 丁

max=num[i]; if(num[i]

min=num[i]; }

printf(\ getch(); return 0; }

12

本文来源:https://www.bwwdw.com/article/mjdg.html

Top