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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

2.1 基础-数字翻转

發布時間:2025/3/20 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2.1 基础-数字翻转 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目
對于一個整數X,定義操作rev(X)為將X按數位翻轉過來,并且去除掉前導0。例如:
如果 X = 123,則rev(X) = 321;
如果 X = 100,則rev(X) = 1.
現在給出整數x和y,要求rev(rev(x) + rev(y))為多少?
輸入描述:
輸入為一行,x、y(1 ≤ x、y ≤ 1000),以空格隔開。
輸出描述:
輸出rev(rev(x) + rev(y))的值
示例1
輸入
123 100
輸出
223

推薦第二種和第四種寫法~

代碼一(比較繁瑣)

#include <iostream> using namespace std; int main() {int x,y,a,b,k,j,i;int c[1001],d[1001],e[1001];cin>>x>>y;if(x==0 && y==0) cout<<"0";else{for(i=0;x>0;x/=10){c[i]=x%10;i++;}for(j=i-1;j>=0;j--){if(c[j]!=0) break;}a=b=0;for(i=0;i<=j;i++){a=a*10+c[i];}for(i=0;y>0;y/=10){d[i]=y%10;i++;}for(k=i-1;k>=0;k--){if(d[k]!=0) break;}for(i=0;i<=k;i++){b=b*10+d[i]; } int n=a+b;for(i=0;n>0;n/=10){e[i]=n%10;i++;}for(j=0;j<i;j++){if(e[j]!=0) break;}for(k=j;k<i;k++){cout<<e[k];}}cout<<endl;return 0; }

代碼二(鍛煉思維)

#include <iostream> #include <string.h> using namespace std; const int MAX=1e3 + 10; int main() {char x[100],y[100];int l1,l2,a,b,j,i;while(cin>>x>>y){a=b=0;l1=strlen(x);l2=strlen(y);for(i=l1-1;i>=0;i--){a=a*10+x[i]-'0';}for(i=l2-1;i>=0;i--){b=b*10+y[i]-'0';}a=a+b;for(i=0;a>0;i++){if(a%10) break;a/=10;}for(j=0;a>0;j++){cout<<a%10;a/=10;}cout<<endl;} return 0; }

代碼三

#include<bits/stdc++.h> using namespace std; char x[100],y[100]; vector<int> ann; int main(){cin>>x>>y;int l1=strlen(x);int l2=strlen(y);reverse(x,x+l1);reverse(y,y+l2);int n,m;n=m=0;for(int i=0;i<l1;i++){n=n*10+x[i]-'0';}for(int i=0;i<l2;i++){m=m*10+y[i]-'0';}int kk=n+m;while(kk){ann.push_back(kk%10);kk/=10;}int id=10000;for(int i=0;i<ann.size();i++){if(ann[i]){id=i;break;}}if(id==10000){cout<<0<<endl;return 0;}for(int i=id;i<ann.size();i++) cout<<ann[i];puts("");//換行return 0; }

代碼四(簡潔高效)

#include <iostream> using namespace std; int rev(int a) {int ans=0;while(a>0){ans=ans*10+a%10;a/=10;}return ans; } int main() {int x,y; while(cin>>x>>y){cout<<rev(rev(x)+rev(y))<<endl;}return 0; }

總結

以上是生活随笔為你收集整理的2.1 基础-数字翻转的全部內容,希望文章能夠幫你解決所遇到的問題。

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