這些是以前寫過的題目,放在這裡紀錄一下
內容 :
在小學時我們都做過加法的運算,就是把2個整數靠右對齊然後,由右至左一位一位相加。如果相加的結果大於等於10就有進位(carry)的情況出現。你的任務就是要判斷2個整數相加時產生了幾次進位的情況。這將幫助小學老師分析加法題目的難度。
輸入說明 :
每一列測試資料有2個正整數,長度均小於10位。最後一列有2個0代表輸入結束。
輸出說明 :
每列測試資料輸出該2數相加時產生多少次進位,請參考Sample Output。注意進位超過1次時operation有加s
範例輸入 :
123 456 555 555 123 594 0 0
範例輸出 :
No carry operation. 3 carry operations. 1 carry operation.
/**********************************************************************************//* Problem: c014 "Primary Arithmetic" from ACM 10035 *//* Language: C *//* Result: AC (56ms, 356KB) on ZeroJudge *//* Author: diiuuli520 at 2008-08-17 02:39:02 *//**********************************************************************************/ #include<stdio.h>#include<stdlib.h> int main(void){ int a,b,y=0,z,i=0,c,j,x; while(scanf("%d%d",&a,&b)!=EOF){ if(a==0&&b==0) break; x=0; z=0; do{ c=(a%10)+(b%10)+x; x=c/10; a/=10; b/=10; if(x==1) z++; }while(a||b); if(z==0) printf("No carry operation.\n"); else if(z==1) printf("1 carry operation.\n"); else printf("%d carry operations.\n",z); } return(0); }
沒有留言:
張貼留言