HDU2007 平方和与立方和入门
Posted 海岛Blog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDU2007 平方和与立方和入门相关的知识,希望对你有一定的参考价值。
平方和与立方和
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 310913 Accepted Submission(s): 98749
Problem Description
给定一段连续的整数,求出他们中所有偶数的平方和以及所有奇数的立方和。
Input
输入数据包含多组测试实例,每组测试实例包含一行,由两个整数m和n组成。
Output
对于每组输入数据,输出一行,应包括两个整数x和y,分别表示该段连续的整数中所有偶数的平方和以及所有奇数的立方和。
你可以认为32位整数足以保存结果。
Sample Input
1 3
2 5
Sample Output
4 28
20 152
Author
lcy
Source
C语言程序设计练习(一)
问题链接:HDU2007 平方和与立方和
问题简述:(略)
问题分析:
按Markdown格式重写了题解,旧版题解参见参考链接。
需要说明的是,判断奇数偶数时候,一般而言用位运算&要强于用取余数运算%。立方是用乘法实现最简单,不能写成数学式子。还有一点是,累加的初值则设置为0(累乘的初值设置为1)。
这个程序的问题虽然简单,但是不是一次通过的。因为,题目没有说输入的数保证是先小后大,所以又补了几句交换m和n的代码才AC。
程序说明:(略)
参考链接:HDU2007 平方和与立方和【序列处理+入门】
题记:编程问题处处是陷阱!
AC的C语言程序如下:
/* HDU2007 平方和与立方和 */
#include <stdio.h>
int main(void)
{
int m, n, even_sum, odd_sum, i;
while (scanf("%d%d", &m, &n) != EOF) {
/* 和清零 */
odd_sum = even_sum = 0;
/* 计算平方和和立方和 */
if (m > n) { /* 保证m<=n,以便控制循环 */
i = m;
m = n;
n = i;
}
for (i = m; i <= n; i++) {
if (i & 1) /* 或 i % 2 == 1 */
odd_sum += i * i * i; /* 奇数立方 */
else
even_sum += i * i; /* 偶数平方 */
}
/* 输出结果 */
printf("%d %d\\n", even_sum, odd_sum);
}
return 0;
}
以上是关于HDU2007 平方和与立方和入门的主要内容,如果未能解决你的问题,请参考以下文章