#include<stdio.h>
int check1(int i,int j,int k)
{
if(i==2&&j!=4&&k!=6) return 1
if(i!=2&&j==4&&k!=6) return 1
if(i!=2&&j!=4&&k==6) return 1
return 0
}
int check2(int i,int j,int k)
{
if((i==5||i==8)&&j!=2&&j!=5&&j!=8&&k!=2&&k!=5&&k!=8) return 1
if((j==2||j==8)&&i!=2&&i!=5&&i!=8&&k!=2&&k!=5&&k!=8) return 1
if((k==2||k==5)&&i!=2&&i!=5&&i!=8&&j!=2&&j!=5&&j!=8) return 1
return 0
}
int check3(int i,int j,int k)
{
if(i==9&&(j==6||j==2)&&k!=6&&k!=9&&k!=2) return 1
if(i==2&&j==6&&k!=6&&k!=9&&k!=2) return 1
if(k==6&&(i==9||i==2)&&j!=6&&j!=9&&j!=2) return 1
if(k==9&&i==2&&j!=6&&j!=9&&j!=2) return 1
return 0
}
int check4(int i,int j,int k)
{
if(i!=1&&i!=7&&i!=4&&j!=1&&j!=7&&j!=4&&k!=1&&k!=7&&k!=4)
{
return 1
}
return 0
}
int check5(int i,int j,int k)
{
if((i==1||i==9)&&j!=4&&j!=1&&j!=9&&k!=4&&k!=1&&k!=9) return 1
if((j==4||j==9)&&i!=4&&i!=1&&i!=9&&k!=4&&k!=1&&k!=9) return 1
if((k==4||k==1)&&i!=4&&i!=1&&i!=9&&j!=4&&j!=1&&j!=9) return 1
return 0
}
int main()
{
int i,j,k
for(i=0i<10i++)
for(j=0j<10j++)
for(k=0k<10k++)
{
if(check1(i,j,k))
{
if(check2(i,j,k))
{
if(check3(i,j,k))
{
if(check4(i,j,k))
{
if(check5(i,j,k))
{
printf("%d%d%d\n",i,j,k)
}
}
}
}
}
}
}
代码文本:
#include "stdio.h"
char repeat(char *p,char n){//重复检查
char i
for(i=0i<ni++)
if(p[n]==p[i])
return 0
return 1
}
char check(char *p){//检查输入是否正确
char i,n
for(n=0p[n]n++)
if(n==8){
for(i=1i<ni++)//检查
if(!repeat(p,i))
return 0
return 1
}
return 0
}
int main(int argc,char *argv[]){
char s[9]="",t[9]="",i,d=58
int n
printf("Please enter the last set of number(L:8,0~9, no repeat)...\n")
if(scanf("%[0-9]s",t)==1 &&check(t)){
for(n=0,s[0]='0's[0]<ds[0]++)
for(s[1]='0's[1]<ds[1]++)
if(repeat(s,1))
for(s[2]='0's[2]<ds[2]++)
if(repeat(s,2))
for(s[3]='0's[3]<ds[3]++)
if(repeat(s,3))
for(s[4]='0's[4]<ds[4]++)
if(repeat(s,4))
for(s[5]='0's[5]<ds[5]++)
if(repeat(s,5))
for(s[6]='0's[6]<ds[6]++)
if(repeat(s,6))
for(s[7]='0's[7]<ds[7]++)
if(repeat(s,7)){
for(n++,i=0i<8i++)
if(s[i]-t[i])
break
if(i==8){
printf("\n%d\n",n)
return 0
}
}
}
else
puts("Input error, exit...")
return 0
}