杭电oj 平方和与立方和

给定一段连续的整数,求出他们中所有偶数的平方和以及所有奇数的立方和。

 

 

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

 

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

 

Sample Input
1 3 2 5
 
Sample Output
4 28 20 152
 
 
代码如下:我的代码是下面这个,后面看别人的代码,发现可以不用判断a和b的大小,下下面的是网上的代码,如果a>b的话可以直接交换a和b,这样代码量就少了很多。

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int a,b,i;
    int x = 0,y = 0;
   while(scanf("%d %d",&a,&b)!=EOF)
   {
       if(a<b)
       {
           for(i=a;i<=b;i++)
            {
                if(i%2==0)
                    {x = x+i*i;}
                else
                    {y = y+i*i*i;}
            }
            printf("%d %d\n",x,y);
            x=0;
            y=0;
       }
       else
       {
           for(i=b;i<=a;i++)
            {
                if(i%2==0)
                    {x = x+i*i;}
                else
                    {y = y+i*i*i;}
            }
            printf("%d %d\n",x,y);
            x=0;
            y=0;
       }

   }
    return 0;
}

 

 
#include<stdio.h>

int main() {
int m, n;
int x = 0, y = 0;

while(scanf("%d %d", &m, &n) != EOF) {
int temp;
if (m > n) {    //判断m,n的大小
temp = m; m = n; n = temp;
}

for(;m <= n; m++) {
if(m %2 == 0) {
x += m * m;
} else {
y += m * m * m;
}
}

printf("%d %d\n", x, y);
x = 0;
y = 0;
}

return 0;
}

 
 
 

 

 

posted @ 2019-03-31 16:02  pipiforever  阅读(438)  评论(0编辑  收藏  举报