B题
import java.io.*;
import java.util.*;
public class Main {
static int day1[]={31,29,31,30,31,30,31,31,30,31,30,31};
static int day2[]={31,28,31,30,31,30,31,31,30,31,30,31};
public static int dateTransform(int x,int y,int z){
int i;int ans=0;
if((x%4==0&&x%100!=0)||(x%400==0)){
for(i=1;i<y;i++){
ans+=day1[i-1];
}
ans+=z;
return ans;
}
else{
for(i=1;i<y;i++){
ans+=day2[i-1];
}
ans+=z;
return ans;
}
}
public static void main(String[] args) {
int a,b,c;
Scanner sc=new Scanner(System.in);
while(sc.hasNextInt()){
a=sc.nextInt();
b=sc.nextInt();
c=sc.nextInt();
System.out.printf("%d\n",dateTransform(a,b,c));
}
}
}
A题
c++:
#include<stdio.h>
#include<string.h>
using namespace std;
int a[10];
char tmp[5];
int isok(int x,int y)
{
memset(a,0,sizeof(a));
int flag=1;
int z=x+y;
if(z>987)
{
return 0;}
int i;
sprintf(tmp,"%d",x);
for(i=0; i<3; i++)a[tmp[i]-'0']=1;
sprintf(tmp,"%d",y);
for(i=0; i<3; i++)a[tmp[i]-'0']=1;
sprintf(tmp,"%d",z);
for(i=0; i<3; i++)a[tmp[i]-'0']=1;
for(i=1; i<10; i++)
{
if(a[i]==0)flag=0;
}
return flag;
}
int main()
{
int i,j,k=0;
for(i=123; i<=987; i++)
{
for(j=123; j<=987; j++)
{
if(isok(i,j)>0)
{
printf("%d+%d=%d\n",i,j,i+j);
k++;
}
}
}
printf("%d\n",k);
return 0;
}
Java 版
import java.io.*;
import java.util.*;
public class Main {
public static int isok(int x,int y){
int[]a=new int[10];
int flag=1;
int z=x+y;
int i;
if(z>987){return 0;}
a[x/100]=1;
a[x%10]=1;
a[x/10%10]=1;
a[y/100]=1;
a[y%10]=1;
a[y/10%10]=1;
a[z/100]=1;
a[z%10]=1;
a[z/10%10]=1;
for(i=1; i<10; i++){if(a[i]==0)flag=0;}
return flag;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int i,j;int cnt=0;
for(i=123; i<=987; i++)
{
for(j=i+1; j<=987; j++)
{
if(isok(i,j)==1){
cnt++;
System.out.printf("%d+%d=%d\n",i,j,i+j);
}
}
}
System.out.printf("Total of %d Expressions.\n",cnt);
}
}
废弃代码段
// public static int isok(int x,int y){
// int[]a=new int[10];
// int flag=1;
// int z=x+y;
// String s;
// if(z>987){return 0;}
// int i;
// s=String.valueOf(x);
// for(i=0; i<3; i++)a[s.charAt(i)-'0']=1;
// s=String.valueOf(y);
// for(i=0; i<3; i++)a[s.charAt(i)-'0']=1;
// s=String.valueOf(z);
// for(i=0; i<3; i++)a[s.charAt(i)-'0']=1;
// for(i=1; i<10; i++){if(a[i]==0)flag=0;}
// return flag;
// }