#14294: C++ 字串轉陣列算進位次數


kev8067@gmail.com (卓承緯)

學校 : 不指定學校
編號 : 74409
來源 : []
最後登入時間 :
2018-01-11 15:15:59
c014. 10035 - Primary Arithmetic -- UVa10035 | From: [111.71.95.78] | 發表日期 : 2018-07-12 10:21

#include<iostream>
#include <string>
#include <stdio.h>

using namespace std;

int main(){
string input1,input2;

while(cin>>input1>>input2){
int inp1[10]={0},inp2[10]={0},counts=0;
if(input1[0]=='0'&&input1.length()==1&&input2[0]=='0'&&input2.length()==1)
break;

for(int i=input1.length()-1;i>=0;i--){
inp1[i]=input1[input1.length()-1-i]-'0';
}

for(int i=input2.length()-1;i>=0;i--){
inp2[i]=input2[input2.length()-1-i]-'0';
}




if(input1.length()>input2.length()){
for(int i=0;i<input1.length();i++){
inp1[i]=inp1[i]+inp2[i];
}
for(int i=0;i<input1.length();i++){
if(inp1[i]>=10)
{
inp1[i+1]++;
inp1[i]=inp1[i]%10;
counts++;
}
}
}

if(input1.length()<=input2.length()){
for(int i=0;i<input2.length();i++){
inp2[i]=inp2[i]+inp1[i];
}
for(int i=0;i<input2.length();i++){
if(inp2[i]>=10)
{
inp2[i+1]++;
inp2[i]=inp2[i]%10;
counts++;
}
}
}

if(counts==0)
cout<<"No carry operation."<<endl;
else if(counts==1)
cout<<counts<<" carry operation."<<endl;
else
cout<<counts<<" carry operations."<<endl;
}
input1="";
input2="";
}

 
ZeroJudge Forum