日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

USACO-Section1.3 Dual Palindromes (进制转换和回文数)

發布時間:2025/3/15 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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; }

需要注意的是:
為回文數的進制表示要大于等于兩種才可以哦!

/* ID: 18795871 PROG: dualpal LANG: C++ */ #include<iostream> #include<fstream> using namespace std;ifstream fin("dualpal.in"); ofstream fout("dualpal.out");int n,s;bool isPal(char x[100],int l){for (int i=0;i<l/2;i++){if (x[i]!=x[l-i-1]) return false;}return true; }bool Cal(int p,int q){char c[100],cnt=0;while (p){c[cnt]=p%q;p=p/q;cnt++;}if (isPal(c,cnt)) return true;return false; }int main(){int num,cnt;while (fin>>n>>s){num=0;for (int i=s+1;;i++){if (num==n) break;cnt=0;for (int j=2;j<=10;j++){if (Cal(i,j)){cnt++;}if (cnt==2) {fout<<i<<endl;num++;break; }}}}return 0; }

總結

以上是生活随笔為你收集整理的USACO-Section1.3 Dual Palindromes (进制转换和回文数)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。