先考虑只有一位数字的情况,如果<=6,那么取该位数字,如果大于6,那么取该位数字减1。
增加位数会发生什么呢,应该也是<=6时,取该位数字,大于6时取该位数字-1,但这时要考虑到该位置上的权重。
#include<bits/stdc++.h>
using namespace std;
int main(){
int t;cin>>t;
string n;int tmp;
while(t){
cin>>n;
tmp=0;
for(int i=0;i<n.size();++i){
if(n[i]<='6')tmp+=(n[i]-'0')*pow(9,n.size()-i-1);
else tmp+=(n[i]-'0'-1)*pow(9,n.size()-i-1);
}
cout<<tmp<<endl;
--t;
}
return 0;
}