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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

团体程序设计天梯赛-练习集L1-025 正整数A+B (15分)(getline输入)

發布時間:2023/12/4 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 团体程序设计天梯赛-练习集L1-025 正整数A+B (15分)(getline输入) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目:

題的目標很簡單,就是求兩個正整數A和B的和,其中A和B都在區間[1,1000]。稍微有點麻煩的是,輸入并不保證是兩個正整數。

輸入格式:

輸入在一行給出A和B,其間以空格分開。問題是A和B不一定是滿足要求的正整數,有時候可能是超出范圍的數字、負數、帶小數點的實數、甚至是一堆亂碼。

注意:我們把輸入中出現的第1個空格認為是A和B的分隔。題目保證至少存在一個空格,并且B不是一個空字符串。

輸出格式:

如果輸入的確是兩個正整數,則按格式A + B = 和輸出。如果某個輸入不合要求,則在相應位置輸出?,顯然此時和也是?。

輸入樣例1:

123 456

輸出樣例1:

123 + 456 = 579

輸入樣例2:

  • 18
  • 輸出樣例2:

    ? + 18 = ?

    輸入樣例3:

    -100 blabla bla…33

    輸出樣例3:

    ? + ? = ?

    分析:

    這道題需要注意的是數據A、B的范圍在【1,1000】,這時候我們會控制在小于1000內,忽略了值需小于1即不能為0.

    AC代碼:

    #include<bits/stdc++.h> using namespace std; int n,k; string s; int x,y,flag,book; int main(){getline(cin,s);int l=s.size();x=y=flag=book=0;for(int i=0;i<l;i++){if(s[i]==' '){k=i;break;}if(s[i]>='0'&&s[i]<='9')x=x*10+s[i]-'0';elseflag=1;}if(x>1000||x<1)flag=1;for(int i=k+1;i<l;i++){if(s[i]>='0'&&s[i]<='9')y=y*10+s[i]-'0';else {book=1;break;}}if(y>1000||y<1)book=1;flag==0?cout<<x:cout<<'?';cout<<' '<<'+'<<' ';book==0?cout<<y:cout<<'?';if(!book&&!flag) cout<<" = "<<x+y<<endl;else cout<<" = "<<'?'<<endl;return 0; }

    總結

    以上是生活随笔為你收集整理的团体程序设计天梯赛-练习集L1-025 正整数A+B (15分)(getline输入)的全部內容,希望文章能夠幫你解決所遇到的問題。

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