題目連結:a364. 2. 神秘的進位問題 – 高中生程式解題系統
我是用窮舉法,找出每一種可能。程式碼如下~
#include<iostream>
using namespace std;
long long d(long long n){
if(n<=0)
return 1;
else
return n*d(n-1);
}
long long c(long long m,long long n){
if(m<n)
return 0;
else
return d(m)/(d(n)*d(m-n));
}
int main(){
long long iptNum,ipt=0;
bool isRight=false;
cin>>iptNum;
for(long long i=0;i<iptNum;i++){
long long a=0;
isRight=false;
ipt=0;
cin>>ipt;
for(long long j=2;j<17;j++){
for(long long k=1;k<j;k++){
for(long long l=0;l<k;l++){
a=c(j,3)+c(k,2)+c(l,1);
if(a==ipt){
cout<<j<<k<<l<<"\n";
break;
}
}
if(a==ipt){
break;
}
}
if(a==ipt){
break;
}
}
}
return 0;
}