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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

USACO Training Section 1.2 [USACO1.2]回文平方数

發布時間:2023/12/15 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 USACO Training Section 1.2 [USACO1.2]回文平方数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目描述
回文數是指從左向右念和從右向左念都一樣的數。如12321就是一個典型的回文數。

給定一個進制B(2<=B<=20,由十進制表示),輸出所有的大于等于1小于等于300(十進制下)且它的平方用B進制表示時是回文數的數。用’A’,’B’……表示10,11等等

輸入輸出格式
輸入格式:

共一行,一個單獨的整數B(B用十進制表示)。

輸出格式:
每行兩個B進制的符合要求的數字,第二個數是第一個數的平方,且第二個數是回文數。

輸入輸出樣例
輸入樣例#1:

10
輸出樣例#1:
1 1
2 4
3 9
11 121
22 484
26 676
101 10201
111 12321
121 14641
202 40804
212 44944
264 69696
說明
題目翻譯來自NOCOW。

這道題,主要還是考察進制轉換,如果用char 數組對于時間還可以進行優化,但是這個題時間足夠,這樣寫可以偷懶。其次是完全枚舉。

#include<cstdio> #include<cstring> #include<cmath> #include<iostream> #include<algorithm> using namespace std; string solve(int a,int b); bool flag; int main() {int n;cin>>n;for(int i=1;i<=300;i++){string a=solve(i,n);string b=solve(i*i,n);if(flag) cout<<a<<' '<<b<<endl;}return 0; } string solve(int a,int b) {string d;d.clear();int i=0;char c;while(a%b!=a){i=a%b;if(i>=10) c=char(i+55);else c=i+'0';a=a/b;d.push_back(c);}if(a>=10) c=char(a+55);else c=a+'0';d.push_back(c);string e=d;reverse(d.begin(),d.end());if(e==d) flag=1;else flag=0;return d; }

總結

以上是生活随笔為你收集整理的USACO Training Section 1.2 [USACO1.2]回文平方数的全部內容,希望文章能夠幫你解決所遇到的問題。

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