程式碼:
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main(void)
{
ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
string str;
int a,sum;
bool one;
(cin>>a).get();
while(a--)
{
stringstream ss;
getline(cin,str);
ss<<str;
sum=0;
while(getline(ss,str,' '))
{
one=true;
for(auto i:str)
if(one)
{
one=false;
for(auto j:to_string((i-48)*2))
sum+=j-48;
}
else
{
one=true;
sum+=i-48;
}
}
if(sum%10==0)
cout<<"Valid\n";
else
cout<<"Invalid\n";
}
return 0;
}
1.
stringstream ss;
getline(cin,str);
ss<<str;
sum=0;
while(getline(ss,str,' '))2.
for(auto j:to_string((i-48)*2))
sum+=j-48;
幫你改了兩個地方就1s AC了
1. 不要用stringstream,直接用for迴圈跑四次就好了
2. 這裡改成手算,sum+=(i-48)*2/10+(i-48)*2%10