還有這個程式, 嚴格上應該沒有問題, 但不知何故不能執行:
#include<iostream>
#include<stdlib.h>
#include<iomanip>
using namespace std;
int main(){
int F, O, R,T,Y, E, N, S, I, X;
int i, j, t, y;
int forty, ten, sixty;
// 站圈由最小的數字到最大的數字
for(i=10234; i<98766; ++i){
// 分別計算各個數字, 及檢查其數字不能重複
F = i/10000;
O = (i/1000)%10;
if(0==F)continue;
R = (i/100)%10;
if(R==F||R==0)continue;
T=(i/10)%10;
if(T==F||T==0||T==R)continue;
y=i%10;
if(Y==F||Y==0||Y==R||Y==T)continue;
forty=F*10000+0*1000+R*100+t*10+y;
for(j=1; j<99; ++j){
E = j/10;
if(E==F||E==0||E==R||E==T||E==Y)continue;
N = j%10;
if(N==F||N==0||N==R||N==T||N==Y||N==E)continue;
ten = T*100+E*10+N;
sixty=forty+ten+ten;
S=sixty/10000;
I=sixty/10000%10;
X=sixty/100%10;
t=sixty/10%10;
y=sixty%10;
if(y!=Y||t!=T)continue;
if(S==F||S==0||S==R||S==T||S==Y||S==E||S==N)continue;
if(I==F||I==0||I==R||I==T||I==Y||I==E||I==N||I==S)continue;
if(X==F||X==0||X==R||X==T||X==Y|X==E||X==N||X==S||X==I)continue;
// 列印結果
cout << setw(10) << forty << endl
<< setw(10) << ten << endl
<< setw(3) << " +" << setw(7)<< ten << endl
<< setw(11) << "---------" << endl
<< setw(10) << sixty << endl;
}
}
system("pause");
return 0;
}