1016部分A B(c語言版)1 0

2021-09-27 08:47:17 字數 1065 閱讀 3458

題目描述

正整數a的「da(為1位整數)部分」定義為由a中所有da組成的新整數pa。例如:給定a = 3862767,da = 6,則a的「6部分」pa是66,因為a中有2個6。

現給定a、da、b、db,請編寫程式計算pa + pb。

輸入描述:

輸入在一行中依次給出a、da、b、db,中間以空格分隔,其中0 < a, b < 1010。

輸出描述:

在一行中輸出pa + pb的值。

輸入例子:

3862767 6 13530293 3

輸出例子:

399注意:

考慮字串的輸入方式(至少有gets(),scanf("%s",&a);這兩種一塊輸入的),前導0,以及相加時出現的進製問題。

**如下

#include#include#includeint main()

,b[11]=;

int a1[11],a2,a3[11]=,b1[11],b2,b3[11]=,c[11]=;

//類似c[11]=的必須初始化,會用到陣列的預設值,這樣初始化陣列是避免程式崩潰的好方法。

int i,k=0,j=0;

int lena,lenb,sum;

scanf("%s%d%s%d",&a,&a2,&b,&b2);

lena=strlen(a);

lenb=strlen(b);

// char轉int

for(i=0;i=0;i--)

printf("%ld",c[i]);

}else

printf("0");

system("pause");

return 0;

}

最後說明下,本篇所用的方法並不簡便,可能比較複雜。因我用了寫高精度整數相加的一些思想。有其他的方法或想法,可以一起討論!有不足之處,也希望大家指出。

PAT乙級1016 部分A B(C語言)

正整數 a 的 da 為 1 位整數 部分 定義為由 a 中所有 da 組成的新整數 p a 例如 給定 a 3862767,da 6,則 a 的 6 部分 p a 是 66,因為 a 中有 2 個 6。現給定 a d a b d b 請編寫程式計算 pa p b 輸入格式 輸入在一行中依次給出 a...

PAT 乙級1016 部分A B(C語言)

1016 部分a b 15分 正整數 a 的 d a 為 1 位整數 部分 定義為由 a 中所有 da組成的新整數 pa。例如 給定 a 3862767,da 6,則 a 的 6 部分 pa是 66,因為 a 有 2 個 6。現給定 a da b db,請編寫程式計算 pa pb。輸入格式 輸入在一...

PAT乙級1016 部分A B(C語言)

1016 部分a b 15 分 正整數 a 的 da 為 1 位整數 部分 定義為由 a 中所有 d a組成的新整數 p a 例如 給定 a 3862767,d a 6,則 a 的 6 部分 pa是 66,因為 a 中有 2 個 6。現給定 a d a b d b 請編寫程式計算 pa pb。輸入格...