两次遍历求和就行了
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<algorithm>
using namespace std;
int main() {
int m,n;
while(scanf("%d %d",&m,&n)!=EOF)
{
int i,j=0,k=0;
if(m<=n)
for(i=m;i<=n;i++)
{
if(i%2==0)
j=j+i*i;
else if(i%2!=0)
k=k+i*i*i;
}
else
for(i=n;i<=m;i++)
{
if(i%2==0)
j=j+i*i;
else if(i%2!=0)
k=k+i*i*i;
}
printf("%d %d\n",j,k);
}
return 0;
}