stringstream字符串流的妙用


現在有一個數組,其值為從1到10000的連續增長的數字。出於某次偶然操作,導致這個數組中丟失了某三個元素,同時順序被打亂,現在需要你用最快的方法找出丟失的這三個元素,並且將這三個元素根據從小到大重新拼接為一個新數字,計算其除以7的余數。 例:丟失的元素為336,10,8435,得到的新數字為103368435,除以七的余數為2。

/*順序被打亂的意思是這個數組的剩余的9997個數不再是遞增的而是無序的,在剩余的9997個數字
對應的本來的位置若存在則置為1,不存在則依舊是初始值0,然后再做一個查找,把值為0的三個位置找出,得到
丟失的三個數*/
#include<iostream>
#include<string>
#include<sstream>
using namespace std;
int main()
{
    int temp;
    int num[10001]={0};
    string str=" ",s;
    long long sum=0;//防止新數字溢出
    for(int i=1;i<=9997;i++)//因為題目已經說了值從1道10000所以0也就沒必要了
    {
        cin>>temp;
        num[temp]=1;
    }
    for(int j=1;j<=10000;j++)//同上
    {
        if(num[j]==0)
        {
            stringstream s_temp;
            s_temp<<j;//類型轉換從int到string
            s_temp>>s;
            str+=s;
        }
    }
    stringstream s_temp;
    s_temp<<str;//類型轉換從string到long long
    s_temp>>sum;
    cout<<sum%7<<endl;
    return 0;
}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM