假期编程
此博客链接:https://www.cnblogs.com/ping2yingshi/p/12246707.html
1.平方和与立方和(21min)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2007
Problem Description
给定一段连续的整数,求出他们中所有偶数的平方和以及所有奇数的立方和。
Input
输入数据包含多组测试实例,每组测试实例包含一行,由两个整数m和n组成。
Output
对于每组输入数据,输出一行,应包括两个整数x和y,分别表示该段连续的整数中所有偶数的平方和以及所有奇数的立方和。
你可以认为32位整数足以保存结果。
你可以认为32位整数足以保存结果。
Sample Input
1 3
2 5
Sample Output
4 28
20 152
题解:此题巨坑,题目一看没什么难度,就一个奇数和偶数判断,但是你会发现给的示例你都对,还感觉自己没有错,但是就是ac不了,然后你一直纳闷,直到你看了我写的你才知道原因,就是给定的一段连续的整数可能是从大到小给的。所以你要先判断给的范围是从大到小给的饿,还是从小到大给的。
代码如下:
#include<stdio.h> #include<math.h> int main(void) { int m; int n; int i; while(~scanf("%d %d",&m,&n)) { int x=0; int y=0; int temp; if(m>n) { temp=m; m=n; n=temp; } for(i=m;i<=n;i++) if(i%2==0) x=x+i*i; else y=y+i*i*i; printf("%d %d\n",x,y); } return 0; }
2.数值统计(23min)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2008
Problem Description
统计给定的n个数中,负数、零和正数的个数。
Input
输入数据有多组,每组占一行,每行的第一个数是整数n(n<100),表示需要统计的数值的个数,然后是n个实数;如果n=0,则表示输入结束,该行不做处理。
Output
对于每组输入数据,输出一行a,b和c,分别表示给定的数据中负数、零和正数的个数。
Sample Input
6 0 1 2 3 -1 0
5 1 2 3 4 0.5 0
Sample Output
1 2 3
0 0 5
题解:此题需要注意的是题目给的数值是实数范围而不是整数范围,把输入的数定义为double类型就可以了,我一开始定义为int类型,后来报错,也是琢磨好久才知道错那里了。
代码如下:
#include<stdio.h> #include<math.h> int main(void) { int n; int i; while(1) { double m[100]={0.0}; scanf("%d",&n); if(n==0) break; else{ for(i=0;i<n;i++) scanf("%lf",&m[i]); int zero=0; int R=0; int F=0; for(i=0;i<n;i++) if(m[i]<0) F++; else if(m[i]>0) R++; else zero++; printf("%d %d %d\n",F,zero,R); } } return 0; }
出来混总是要还的