暑假第二周练习题 - Virtual Judge (vjudge.net)
该题就是将含4的数字全部跳过,不难发现,这就导致每位数都要少一个树,这就和9进制十分像,我们只要将该数字转化为9进制,然后将该9进制树的每位大于等于4的树加一就行了;
#include<bits/stdc++.h>
using namespace std;
int t;
long long K;
int A[20];
void f(long long a) {
if (a == 0) {
cout << 0 << endl;
return;
}
int s = 0;
while (a) {
A[s] = a % 9;
a /= 9;
s++;
}
for (int i = s - 1; i >= 0; i--)
{
if (A[i] >= 4)
{
A[i]++;
}
cout << A[i];
}
cout << endl;
return;
}
int main()
{
cin >> t;
while (t--)
{
cin >> K;
f(K);
}
return 0;
}
项目进展:
写了主要的界面: