如何用C++语言写出一个checksum的程序。当输入一个数字时,会把这个数字拆分开来从左往右,每个偶数位的数次乘以2,然后把这几个数字相加得出答案,若是乘以2后为两位数,则把这个数字拆开为两位后再相加。例如,输入1496,拆开数字为1,4,9,6,可以看到9和1为从左往右数的偶数位,乘以2后四位数字变为2,4,18,6,可以看到18为两位数则拆开为1和8,得出的答案便为2+4+1+8+6=21
例如input为5678,output为20
input为6789,output为26
请问如何用C++写出这个程序达到目的呢
谢谢
代码开头为
#include
#include
using namespace std;
int main() {
string line;
while ( getline ( cin, line)){
cout << line << endl;
}
}
#include <iostream>
#include <string>
using namespace std;
int main() {
string line;
while ( getline ( cin, line)){
cout << line << endl;
int len = line.length();
int sum = 0;
for(int i=0;i<len;i++)
{
if(i%2==0)
{
int a = 2*(line[i]-'0');
if(a>=10)
{
sum += a/10;
sum += a%10;
}
else
sum += a;
}
else
{
sum += line[i]-'0';
}
}
cout<<sum<<endl;
}
return 0;
}