hdu 2007 求奇數的乘積(C語言)
阿新 • • 發佈:2018-12-16
hdu 2007 求奇數的乘積
題目描述
Problem Description 給定一段連續的整數,求出他們中所有偶數的平方和以及所有奇數的立方和。
Input 輸入資料包含多組測試例項,每組測試例項包含一行,由兩個整數m和n組成。
Output 對於每組輸入資料,輸出一行,應包括兩個整數x和y,分別表示該段連續的整數中所有偶數的平方和以及所有奇數的立方和。 你可以認為32位整數足以儲存結果。
Sample Input 1 3 2 5
Sample Output 4 28 20 152
Author lcy
問題解答
#include <stdio.h>
int main( )
{
int m,n;
while(scanf("%d %d",&m,&n)!=EOF)//使程式可以輸入多組測試例項
{
int x=0,y=0,t,temp;
if(m>n)//需考慮如果使用者輸入的兩個數字不是按照從小到大給的
{
t=m;
m=n;
n=t;
}//交換 m,n兩者的常用程式碼,t作為一箇中轉站
temp=m;//temp作為臨時儲存從 m到 n每個數字的一個變數
for (int i=m;i<=n;i++)//迴圈判斷每個數的奇偶,迴圈是從 m這個數開始,到 n結束(也可以計算次數,讓 i從 1開始迴圈)
{
if(temp%2==0)//偶數情況
{
x+=temp*temp;
++temp;//每次判斷完一個數,讓下一個數賦值給temp,即temp+=1
}
else//奇數情況
{
y+=temp*temp*temp;
++ temp;//每次判斷完一個數,讓下一個數賦值給temp,即temp+=1
}
}
printf("%d %d\n",x,y);//在這些 for迴圈外列印輸出
}
}
筆記
- 對題目的理解:“給定一段連續的整數,求出他們中所有偶數的平方和以及所有奇數的立方和。”意思是如果使用者輸入1 3,那麼實際上求的是1~3即1、2、3這三個連續整數中所有偶數的平方和以及所有奇數的立方。