第一题:
import java.util.Scanner;
public class Main {
static int count=0;
public static void main(String args[]){
Scanner input=new Scanner(System.in);
int num[]=new int[1000];
int index=0;
while(input.hasNext()){
int n=input.nextInt();
String s[]=new String[n];
for(int i=0;i<n;i++){
s[i]=input.next();
}
boolean flag[]=new boolean[6];
backtrack(0,n,flag,s);
num[index]=count;
count=0;
index++;
}
for(int i=0;i<index;i++){
System.out.println(num[i]);
}
}
public static void backtrack(int i,int n,boolean
flag[],String s[]){
if(i==n){
count++;
}else{
for(int j=0;j<s[i].length();j++){
int
p=Integer.parseInt((String)(s[i].charAt(j)+""));
if(!flag[p]){
flag[p]=!flag[p];
backtrack(i+1,n,flag,s);
flag[p]=!flag[p];
}
}
}
}
}
第二题:
import java.util.Scanner;
public class Main{
static int count=0;
public static void main(String args[]){
Scanner input=new Scanner(System.in);
int num[]=new int[10000];
int index=0;
while(input.hasNext()){
int A=input.nextInt();
int B=input.nextInt();
int begin=A/19;
if(begin*19<A)
begin++;
while(((begin+A)%5!=0)&&(begin+A)<=B){
begin++;
}
int end=A/9;
for(int i=begin;i<=end;i=i+5){
if((A+i<=B)&&((A+i)%5==0)){
count++;
}
}
num[index]=count;
count=0;
index++;
}
for(int i=0;i<index;i++){
System.out.println(num[i]);
}
}
}
第三题:
import java.util.Scanner;
public class Main {
public static void main(String args[]){
Scanner input=new Scanner(System.in);
int num[]=new int[10000];
int index=0;
while(input.hasNext()){
int count=0;
int S=input.nextInt();
int r=(int)Math.sqrt((double)S);
for(int i=0;i<=r;i++){
int p=(int)Math.sqrt(S-i*i);
int sum=i*i+p*p;
if(sum==S){
if(i==0||p==0){
count+=2;
}else{
count+=4;
}
}
}
num[index]=count;
index++;
}
for(int i=0;i<index;i++){
System.out.println(num[i]);
}
}
}