1004 大数

来源:互联网 发布:巴西足球知乎 编辑:程序博客网 时间:2024/06/07 19:41

大数加法是抄的模板,要注意的是,m如果小于3,则肯定不行,因为最少的是三角形。m的取值范围是3<=m<=n+p。

#include<iostream>#include<string>using namespace std;string n,m,p;string Sum(string s1,string s2){    if(s1.length()<s2.length()){    string temp=s1;    s1=s2;    s2=temp;}for(int n1=s1.length()-1,n2=s2.length()-1;n1>=0;n1--,n2--){    s1[n1]=char(s1[n1]+(n2>=0?s2[n2]-'0':0));if(s1[n1]-'0'>=10){    s1[n1]=char((s1[n1]-'0')%10+'0');    if(n1)        s1[n1-1]++;    else        s1='1'+s1;} }return s1;}int main(){while(cin>>n>>m>>p){int len_n=n.length();int len_m=m.length();if(len_m==1&&m<"3")    printf("NO\n");    else if(len_m<len_n||len_m==len_n&&m<n)        printf("YES\n");    else{    string temp=Sum(n,p);    int len_t=temp.length();    if(len_t>len_m||(len_t==len_m&&(temp>m||temp==m)))        printf("YES\n");    else        printf("NO\n");}}//system("pause");    return 0;}


原创粉丝点击