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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

pat-1136. A Delayed Palindrome (20) 模拟

發(fā)布時(shí)間:2023/12/10 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pat-1136. A Delayed Palindrome (20) 模拟 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本可以java大數(shù)就能搞定的問(wèn)題
當(dāng)時(shí)用java寫(xiě)完答案明明對(duì)了提交總是答案錯(cuò)誤
很是無(wú)語(yǔ)

題意

任給我們一個(gè)數(shù)
讓我們對(duì)這個(gè)數(shù)進(jìn)行翻轉(zhuǎn)相加
如果加和是個(gè)回文數(shù) 就找到了程序出口
如果不是繼續(xù)迭代
輸出過(guò)程 如果迭代10次沒(méi)有找到就輸出特定信息

分析

就是模擬高精度加法
場(chǎng)上沒(méi)想清楚為什么要那么加
兩個(gè)數(shù)相加只可能比原數(shù)多進(jìn)一位
完全可以用正序和逆序兩個(gè)數(shù)組里一加
不必管 低位高位 對(duì)齊的情況
因?yàn)槭且粋€(gè)數(shù)與自己的逆序相加 所以一定位數(shù)相同且從低位加還是從高位加結(jié)果相同
如果是不同數(shù)的加法或是乘法
我們需要從兩個(gè)數(shù)的最高位置 向低位運(yùn)算 因?yàn)楦呶粸樵瓟?shù)據(jù)的低位
所以最后再反向輸出

code

#include<bits/stdc++.h> using namespace std; char a[1010],b[1010]; bool check(char aa[]){int len = strlen(aa);for(int i=0;i<len-1-i;i++){if(aa[i]!=aa[len-1-i])return 0;}return 1; }//回文檢驗(yàn) int main() {gets(a);bool f=0;int c=0;while(!check(a)){if( c==10 ){printf("Not found in 10 iterations.");f=1;break;}int lena = strlen(a)-1,tag=0;for(int i=lena;i>=0;i--){b[tag++] = a[i];}//將原數(shù)逆序 b[tag] = '\0';printf("%s + %s",a,b);int i,y = 0;for(i=0;i<=lena;i++){//模擬加法int dig = (a[i]-'0')+(b[i]-'0')+y;a[i] = '0'+dig%10;if(dig>9)y=1;else y = 0;}if(y)a[i] = '0'+y,a[++i] = '\0';//余數(shù)處理else a[i] = '\0';//行尾結(jié)束控制i--;//找回重點(diǎn)for(int j=0;j<i-j;j++){//把順序換回來(lái)swap(a[j],a[i-j]);} printf(" = %s\n",a);c++;}if(!f)printf("%s is a palindromic number.",a);return 0; }

總結(jié)

以上是生活随笔為你收集整理的pat-1136. A Delayed Palindrome (20) 模拟的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。