日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

大数加法【HDU 1002】

發布時間:2023/11/27 生活经验 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 大数加法【HDU 1002】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大數加法模板

一般的加法只要int類型的兩數直接相加即可,大一點的數可以設為long long類型,而超過長整型的數則屬于大數問題了,大數加法其實也比較簡單,利用數組實現就可以啦:

主要思想如下
(1)將大數以字符串形式輸入,并轉化為數組形式倒序存儲
(2)將兩數組對應位相加,位數滿10進1
(3)判斷最高位是否為0,輸出結果數組

代碼實現

#include<stdio.h>
#include<string.h>
int main()
{char s1[1005],s2[1005];int num1[1005],num2[1005];int len1,len2,i,j;memset(num1,0,sizeof(num1));memset(num2,0,sizeof(num2));printf("please int first number\n");scanf("%s",s1);printf("please int secound number\n");scanf("%s",s2);len1=strlen(s1);len2=strlen(s2);for(i=len1-1,j=0; i>=0 ; i--){num1[j]=s1[i]-48;j++;}for(i=len2-1,j=0; i>=0 ; i--){num2[i]=s2[j]-48;j++;}for(i=0; i<(len2>len1?len2:len1); i++){num1[i]+=num2[i];if(num1[i]>9){num1[i+1]+=1;num1[i]-=10;}}if(num1[i]){for(j=i; j>=0; j--)printf("%d",num1[j]);}else{for(j=i-1; j>=0; j--)printf("%d",num1[j]);}printf("\n");return 0;
}

【HDU 1002】 大數加法模板題,注意輸出格式控制就好~

代碼實現

#include<stdio.h>
#include<string.h>
int main()
{char s1[1005],s2[1005];int num1[1005],num2[1005];int len1,len2,i,j,t,k=1;scanf("%d",&t);while(t--){memset(num1,0,sizeof(num1));memset(num2,0,sizeof(num2));scanf("%s%s",s1,s2);len1=strlen(s1);len2=strlen(s2);for(i=len1-1,j=0; i>=0 ; i--){num1[j]=s1[i]-48;j++;}for(i=len2-1,j=0; i>=0 ; i--){num2[i]=s2[j]-48;j++;}for(i=0; i<(len2>len1?len2:len1); i++){num1[i]+=num2[i];if(num1[i]>9){num1[i+1]+=1;num1[i]-=10;}}if(k!=1) printf("\n");printf("Case %d:\n",k);k++;printf("%s + %s = ",s1,s2);if(num1[i]){for(j=i; j>=0; j--)printf("%d",num1[j]);}else{for(j=i-1; j>=0; j--)printf("%d",num1[j]);}printf("\n");}return 0;
}

總結

以上是生活随笔為你收集整理的大数加法【HDU 1002】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。