題目描述
若乙個數(首位不為零)從左向右讀與從右向左讀都一樣,我們就將其稱之為回文數。
例如:給定乙個十進位制數 5656,將 5656 加 6565(即把 5656 從右向左讀),得到 121121 是乙個回文數。
又如:對於十進位制數 8787:
step1:87+78=16587+78=165
step2:165+561=726165+561=726
step3:726+627=1353726+627=1353
step4:1353+3531=48841353+3531=4884
在這裡的一步是指進行了一次 nn 進製的加法,上例最少用了 44 步得到回文數 48844884。
寫乙個程式,給定乙個 nn(2 \le n \le 102≤n≤10 或 n=16n=16)進製數 mm(100100 位之內),求最少經過幾步可以得到回文數。如果在 3030 步以內(包含 3030 步)不可能得到回文數,則輸出 impossible!。
輸入格式
兩行,分別是 nn,mm。
輸出格式
如果能在 3030 步以內得到回文數,輸出格式形如 step=ans,其中 ansans 為最少得到回文數的步數。
否則輸出 impossible!。
輸入樣例
10 87
輸出樣例
step=4
首次提交**
#include#include#include#include#include#includeusing namespace std;
int n,a[10010],b[10010],ans,l;
void zhuanhuan()//輸入加轉換
}bool check()//判斷回文
return true;
}void gaojing()//進製比較特殊
if(a[l+1]>0)l++;
}int main()
for(int ans=1;ans<=30;++ans) }
printf("impossible");
return 0;
}
20分鐘後--錯的依舊這麼清奇:impossible後沒加'!'
P1020 NOIP1999 普及組 飛彈攔截
第一問,單個系統最多能攔截多少飛彈,求最長不公升序列即可.拿出lis的模板塗塗改改.bool cmp const int a,const int b for int i 1 i n i if s i dp len len dp len s i else printf d n len 第二問,最少需要...
NOIP 1999 普及組 複賽 回文數
noip 1999 普及組 複賽 回文數 1309 例1.6 回文數 noip1999 高精度加演算法,很有信心 後判斷 翻轉 先加 30步跳出 仔細看題,發現並不只是十進位制,是n進製,馬上意識到該題的難度了 過了一晚之後,再想想,只要把十進位制中的10換成n,並編寫乙個列印函式,列印位上的值大於...
普及 NOIP 1999 郵票面值設計
題目描述 給定乙個信封,最多隻允許貼上n張郵票,計算在給定k n k 40 種郵票的情況下 假定所有的郵票數量都足夠 如何設計郵票的面值,能得到最大值max,使在1 max之間的每乙個郵資值都能得到。例如,n 3,k 2,如果面值分別為1分 4分,則在1分 6分之間的每乙個郵資值都能得到 當然還有8...