Problem Description
给定一段连续的整数,求出他们中所有偶数的平方和以及所有奇数的立方和。
Input
输入数据包含多组测试实例,每组测试实例包含一行,由两个整数m和n组成。
Output
对于每组输入数据,输出一行,应包括两个整数x和y,分别表示该段连续的整数中所有偶数的平方和以及所有奇数的立方和。
你可以认为32位整数足以保存结果。
Sample Input
1 3
2 5
Sample Output
4 28
20 152
法一:
import java.util.Scanner;
public class P2007 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
int m=sc.nextInt();
int n=sc.nextInt();
int[] a=new int[n-m+1];
int t=m;
int sum=0,lf=0;
for(int i=0;i<n-m+1;i++){
a[i]=t;
t++;
if(a[i]==n){
break;
}
}
if((n-m)%2==0){
if(n%2==0){
for(int i=0;i<n-m+1;i+=2){
sum+=(a[i]*a[i]);
}
for(int i=1;i<n-m+1;i+=2){
lf+=(a[i]*a[i]*a[i]);
}
}else{
for(int i=1;i<n-m+1;i+=2){
sum+=(a[i]*a[i]);
}
for(int i=0;i<n-m+1;i+=2){
lf+=(a[i]*a[i]*a[i]);
}
}
}else{
if(n%2==0){
for(int i=1;i<n-m+1;i+=2){
sum+=(a[i]*a[i]);
}
for(int i=0;i<n-m+1;i+=2){
lf+=(a[i]*a[i]*a[i]);
}
}else{
for(int i=0;i<n-m+1;i+=2){
sum+=(a[i]*a[i]);
}
for(int i=1;i<n-m+1;i+=2){
lf+=(a[i]*a[i]*a[i]);
}
}
}
System.out.println(sum+" "+lf);
}
}
}
法二:
import java.util.Scanner;
public class P20072 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
int m=sc.nextInt();
int n=sc.nextInt();
if(m>n){
int t=m;
m=n;
n=t;
}
int sum=0,lf=0;
for(int i=m;i<=n;i++){
if(i%2==0){
sum+=i*i;
}else{
lf+=i*i*i;
}
}
System.out.println(sum+" "+lf);
}
}
}