OJ2007题、2008题、2009题、2010题、2011题

来源:互联网 发布:看外汇行情的软件 编辑:程序博客网 时间:2024/06/05 22:55
给定一段连续的整数,求出他们中所有偶数的平方和以及所有奇数的立方和。

Input
输入数据包含多组测试实例,每组测试实例包含一行,由两个整数m和n组成。

Output
对于每组输入数据,输出一行,应包括两个整数x和y,分别表示该段连续的整数中所有偶数的平方和以及所有奇数的立方和。
你可以认为32位整数足以保存结果。

Sample Input
1 32 5

Sample Output
4 2820 152
#include<stdio.h>void main(){long a,b;while(scanf("%d %d\n",&a,&b)==2){long temp,i;long s1=0;long s2=0;if(a>b){temp=a;a=b;b=temp;} for(i=a;i<=b;i++){if(i%2==0){s1=s1+i*i;}elses2=s2+i*i*i;}printf("%d %d\n",s1,s2);}}
统计给定的n个数中,负数、零和正数的个数。

Input
输入数据有多组,每组占一行,每行的第一个数是整数n(n<100),表示需要统计的数值的个数,然后是n个实数;如果n=0,则表示输入结束,该行不做处理。

Output
对于每组输入数据,输出一行a,b和c,分别表示给定的数据中负数、零和正数的个数。

Sample Input
6 0 1 2 3 -1 05 1 2 3 4 0.50

Sample Output
1 2 30 0 5
#include <stdio.h>#include<math.h>int main(){int n,i;float s[100];while(scanf("%d",&n)!=EOF){int a=0;int b=0;int c=0;if (n==0) return 0;for(i=0;i<n;i++){scanf("%f",&s[i]);if (s[i]<0)a++;else if(s[i]==0)b++;elsec++;}printf("%d %d %d\n",a,b,c);}return 0;}
数列的定义如下:
数列的第一项为n,以后各项为前一项的平方根,求数列的前m项的和。

Input
输入数据有多组,每组占一行,由两个整数n(n<10000)和m(m<1000)组成,n和m的含义如前所述。

Output
对于每组输入数据,输出该数列的和,每个测试实例占一行,要求精度保留2位小数。

Sample Input
81 42 2

Sample Output
94.733.41
#include <stdio.h>#include<math.h>int main() {int m;float n;while(scanf("%f %d",&n,&m)!=EOF){float s=0;int i;for(i=1;i<=m;i++){s=s+n;n=sqrt(n);}printf("%.2f\n",s);}return 0;}
春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的:
“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3。
现在要求输出所有在m和n范围内的水仙花数。

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

Output
对于每个测试实例,要求输出所有在给定范围内的水仙花数,就是说,输出的水仙花数必须大于等于m,并且小于等于n,如果有多个,则要求从小到大排列在一行内输出,之间用一个空格隔开;
如果给定的范围内不存在水仙花数,则输出no;
每个测试实例的输出占一行。

Sample Input
100 120300 380

Sample Output
no370 371
#include <stdio.h>int main() {int a,b;while(scanf("%d %d",&a,&b)!=EOF){int ge,shi,bai,k;for(k=0;a<=b;++a){ge=a%10;shi=a/10%10;bai=a/100;if(a==ge*ge*ge+shi*shi*shi+bai*bai*bai){if(k!=0)printf(" ");printf("%d",a);k++;}}if (k==0)printf("no\n");else{printf("\n");}}return 0;}
多项式的描述如下:
1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + ...
现在请你求出该多项式的前n项的和。

Input
输入数据由2行组成,首先是一个正整数m(m<100),表示测试实例的个数,第二行包含m个正整数,对于每一个整数(不妨设为n,n<1000),求该多项式的前n项的和。

Output
对于每个测试实例n,要求输出多项式前n项的和。每个测试实例的输出占一行,结果保留2位小数。

Sample Input
21 2

Sample Output
1.000.50
#include<stdio.h>int main(){    double sum,t;    int m,n,flag,i;    scanf("%d",&m);    while(m--)    {      sum=1;      flag=-1;      scanf("%d",&n);      for(i=2;i<=n;i++)      {        t=flag*1.0/i;        sum+=t;        flag=-1*flag;      }      printf("%.2lf\n",sum);    }}







0 0
原创粉丝点击