題目描述
正整數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。輸入格...