程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> HLG 1624 ikki的卡片(20進制大數)

HLG 1624 ikki的卡片(20進制大數)

編輯:C++入門知識

 

ikki有一沓標有大寫英文字母的卡片,但是奇怪的是裡面只有標從’A’-‘T’的卡片,ikki用這20種卡片設計了一個

小游戲:用’A’-‘T’分別表示數字 0 – 19,ikki把這些卡片表示的字母看成是20進制數,並用卡片拼成了兩個數

字,現在ikki想讓你用卡片表示出這兩個數字相加之後的結果(卡片數量不限)。例如:拼成兩個20進制數

分別是AAAADH,BCE 可以這樣得到結果:

a = 0 * 20^5+0* 20^4+ 0* 20^3+ 0 *20^2 + 3*20 + 7 = 67
b = 1*20^2 + 2*20 + 4 = 444
a + b = 511 = BFL

 

多組測試數據。

每組測試數據輸入兩個只包含大寫字母’A’-‘T’的字符串,表示兩個20進制數,字符串長度均小於200。

對於每組測試數據輸出一個用卡片表示的兩個20進制數的和,每組輸出占一行。
Input:

AAA C

AAADH BCE

Output:

C

BFL

 

好久都沒有敲大數加法的代碼了,生疏了超多,做這道題的時候錯誤真不是一般的多,而且檢查的難度不是一般的高,建議廣大計算機小童鞋,這種大數的代碼沒事敲多幾次,這樣在臨時要的時候不至於拿著那種爛模板照著敲,要不然到時真不知道哪裡出錯了,改又不知道怎麼改,這才是最讓人頭疼的、、、

測試數據了N次,,終於過了,,一開始是T B的時候測不到,然後以為對了,沒想到還是錯了,

這裡再提示幾組測試數據吧,AAAA AA --> A TT B --> BAA T B --> BA

 

看一下我寫的猥瑣代碼吧,別吐口水哈各位靓仔靓女,別弄髒自己的電腦:

 

#include 
#include 
#include 
#include 
#define MAXN 256
#define RST(N)memset(N, 0, sizeof(N))
using namespace std;

char str1[MAXN], str2[MAXN], ans[MAXN];
int a[MAXN], b[MAXN], d[MAXN], top;

void ADD(int a[], int b[])
{
    int cnt = 0;
    for(int i=0; i= 20) d[i+1]++;  //進位,這個函數修改的最多,真是有點浪費青春;
    }
}

int main()
{
    while(~scanf(%s %s, str1, str2)) {
        RST(ans), RST(a), RST(b), RST(d);
        int L1 = strlen(str1), L2 = strlen(str2);
        int k1 = 0, k2 = 0;
        for(int i=L1-1; i>=0; i--) a[k1++] = (int)str1[i] - 'A';  //換成數字存儲;
        for(int i=L2-1; i>=0; i--) b[k2++] = (int)str2[i] - 'A';
        ADD(a, b);   
        int flag = 0;   //標記輸出;
        for(int i=MAXN-1; i>=0; i--) {
            if(flag) {
                printf(%c, (char)(d[i]+'A'));
                continue;
            }else if(d[i]) {
                printf(%c, (char)(d[i]+'A'));
                flag = 1;
            }
        }
        if(flag == 0) puts(A);  //0+0的情況,也就是全是A相加的情況;
        puts();   //換行
    }
    return 0;
}

 

 


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved