Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
173607 陈子谦 被限制的加法 C++ 无测评数据 0 0 MS 0 KB 1306 2024-08-20 22:03:32

Tests(0/0):


#include<iostream> #include<cstdio> using namespace std; int n,a,b,c,n9,sum,i,j; bool first; int main() { ios::sync_with_stdio(false); cin>>n; first=1; c=0; n9=0;//n9表示之前累积的9的个数 for(i=1;i<=n;i++)//从高位开始,依次处理每一位 { cin>>a>>b; sum=a+b; if(sum<9)//无进位情况 { if(c>0||first==0)//避免前导零 cout<<c; for(j=1;j<=n9;j++)//因为该位无进位,则可将之前积累的999...999 以000...000输出 cout<<9; first=0; n9=0;//积累的999...999已输出,因此设为0 c=sum; } else if(sum==9)//为9时,只要记录9的个数 n9++; else//大于9,即产生进位情况 { c++;//进位后输出 cout<<c; for(j=1;j<=n9;j++)//因为进位,则将前面积累的999...999以000...000输出 cout<<0; first=0; n9=0;c=sum-10; //c记录该位数进位后余下的数 } } cout<<c; for(j=1;j<=n9;j++)//处理剩下的一段999...999 cout<<9; return 0; }