在某群中看到的题,于是由题意可知:
#include <stdio.h>
/*
检验是否为不重复数
是返回true 1
不是返回false 0
*/
bool test(int forward){
char numStr[10] = {0};
sprintf(numStr, "%d", forward);
for(int i = 1; i <9; i++){
if(numStr[i] < numStr[i-1]){
int j = i - 1;
int x = numStr[i];
numStr[i] = numStr[i - 1];
while(x < numStr[j]){
numStr[j + 1] = numStr[j];
j--;
}
numStr[j + 1] = x;
}
}
// 去重
for(int i = 0; i < 9 ; i++){
if(numStr[i] == '0'){
return false;
}
}
for(int i = 0; i < 9 - 1; i++){
if(numStr[i] == numStr[i + 1]){
return false;
}
}
return true;
}
int main(){
char numStr[10] = {0};
int calcStr[9] = {0};
int initialNumber = 123456789;
for(int i = initialNumber;i < 1000000000; i++){
if(test(i) == true){
sprintf(numStr, "%d", i);
for(int j = 0; j < 9; j++){
calcStr[j] = numStr[j] - '0';
}
if( (calcStr[0] - calcStr[1]) == calcStr[2]){
if( (int)(calcStr[3] / calcStr[4]) == calcStr[5]){
if( (calcStr[6] + calcStr[7]) == calcStr[8]){
if( (int)(calcStr[2] * calcStr[5]) == calcStr[8]){
printf("%s yes\n", numStr);
}
}
}
}
else{
//printf("%s no\n", numStr);
}
}
}
return 0;
}
结论为:
FiredomMacBookPro:desktop firedom$ ./sfdsfdsa
954632178 yes
954632718 yes