USACO-Section1.3 Dual Palindromes (进制转换和回文数)
生活随笔
收集整理的這篇文章主要介紹了
USACO-Section1.3 Dual Palindromes (进制转换和回文数)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2017-5-27
題目描述
求出大于S的至少在兩種進制下表示是回文數的N個數解答
進制轉換與判斷回文數的結合代碼
/* ID: 18795871 PROG: dualpal LANG: C++ */ #include<iostream> #include<fstream> #include<cstring> using namespace std;ifstream fin("dualpal.in"); ofstream fout("dualpal.out");const int N = 100; char c[N+1];void cal(int a,int b){//將十進制a用b進制表示 char d[N+1];int i=0;while (a){d[i++]=a%b+'0';a/=b;} for (int j=0;j<i;j++) c[j]=d[i-j-1];c[i]='\0'; }bool res(char *a){char b[N+1];int l=strlen(a);for (int i=0;i<l;i++) b[l-i-1]=a[i];b[l]='\0';a[l]='\0';if (strcmp(a,b)==0) return true;return false; }int main() {int i,j,n,s,r,sum;fin>>n>>s;sum=0;for (i=s+1;;i++){r=0;for (j=2;j<=10;j++){cal(i,j);if (res(c)) r++;if (r==2){sum++;fout<<i<<endl;break;}}if (sum==n) break;}return 0; }需要注意的是:
為回文數的進制表示要大于等于兩種才可以哦!
總結
以上是生活随笔為你收集整理的USACO-Section1.3 Dual Palindromes (进制转换和回文数)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 登录注册 页面
- 下一篇: JavaScript学习笔记之数组(二)