一道进制转换水题。因为删去了数字7,所以是一种九进制,但是对于8来说是原来的7(少了一位)。
给定一个Pascal进制,按权展开相加变成十进制就是答案。
AC代码
#include <bits/stdc++.h>
using namespace std;
long long ans;
int t;
string n;
int main(){
cin.tie(nullptr),cout.tie(nullptr);
ios::sync_with_stdio(false);
cin>>t;
while(t--){
cin>>n;
ans=0;
std::reverse(n.begin(), n.end());
for(int i=0;i<n.length();i++){
if(n[i]<'7'){
ans+=(n[i]-48)*pow(9,i);
}else{
ans+=(n[i]-49)*pow(9,i);
}
}
cout<<ans<<endl;
}
return 0;
}