进制转换(十进制转换N进制)的实现

来源:互联网 发布:看杀卫玠知乎 编辑:程序博客网 时间:2024/05/16 06:35

进制转换核心代码:

string Zhuanh(int x,int n){string s;while(x){int u=x%n;if(x%n>9)s.push_back(u-10+'A');elses.push_back(u+'0');x/=n;}for(int i=0;i<s.length()/2;i++){swap(s[i],s[s.length()-1-i]);}return s;}


下面是USACO的有关练习的参考代码

 [USACO1.2]回文平方数 Palindromic Squares


#include<iostream>#include<algorithm> #include<string> using namespace std;string Zhuanh(int x,int n){string s;while(x){int u=x%n;if(x%n>9)s.push_back(u-10+'A');elses.push_back(u+'0');x/=n;}for(int i=0;i<s.length()/2;i++){swap(s[i],s[s.length()-1-i]);}return s;}bool ifHui(string s){for(int i=0;i<s.length();i++){if(s[i]!=s[s.length()-1-i])return false;}return true;}int main(){int n;cin>>n;for(int i=1;i<=300;i++){if(ifHui(Zhuanh(i*i,n))){cout<<Zhuanh(i,n)<<" "<<Zhuanh(i*i,n)<<endl;}}}



[USACO1.2]双重回文数 Dual Palindromes




#include<iostream>#include<algorithm> #include<string> #include<cstdio>using namespace std;string Zhuanh(long long int x,int n){string s;while(x){int u=x%n;if(x%n>9)s.push_back(u-10+'A');elses.push_back(u+'0');x/=n;}for(int i=0;i<s.length()/2;i++){swap(s[i],s[s.length()-1-i]);}return s;}bool ifHui(string s){for(int i=0;i<s.length();i++){if(s[i]!=s[s.length()-1-i])return false;}return true;}int main(){int n,s,num=0;cin>>n>>s;for(long long int i=s+1;num<n;i++){int jz=0;for(int j=2;j<11;j++){if(ifHui(Zhuanh(i,j))) jz++;if(jz>=2)break;}if(jz>=2){cout<<i<<endl;num++;}}}

要注意的是,此题的一些变量类型要为long long超长整型。



原创粉丝点击