0%

C++ 基礎題 a364: 2. 神秘的進位問題

題目連結:a364. 2. 神秘的進位問題 - 高中生程式解題系統

我是用窮舉法,找出每一種可能。程式碼如下~

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#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;
}