1.每個位數都檢查 carry + a%10 + b%10是否大於10就能解決這題。

2.測資小於10位數,所以 int就很夠用。不需要 long long更不用大數加法。

3.output的 operations 的單、複數型要注意

網址:

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=12&page=show_problem&problem=976

---------------------------------------------------------------------

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int a, b, carry_digit, carry;

    while( (scanf("%d%d", &a, &b) == 2)  && (a || b) )
    {
        carry_digit = 0, carry = 0;

        for(; a || b; )
        {
            carry += a%10 + b%10;
            if(carry >= 10)
                carry_digit++;
            carry /= 10, a /= 10, b /= 10;
        }
        if(!carry_digit)
            printf("No ");
        else
            printf("%d ", carry_digit);
        printf("carry operation%s.\n", carry_digit > 1 ? "s" : "");
    }
    return 0;
}
 

 

-2017-05-22------------------------------------------------------------------

import java.util.*;
public class main{
    public static void main(String[] args) {
        try{
            int numA,numB;
            Scanner in=new Scanner(System.in);
            while(in.hasNextInt()){
                int carry = 0, carryTimes = 0;
                numA = in.nextInt();
                numB = in.nextInt();
                if(numA == 0 && numB == 0){
                    break;
                }
                while(numA > 0 || numB > 0){
                    if( (carry + numA % 10 + numB % 10) >= 10){
                        carryTimes++;
                        carry = (carry + numA % 10 + numB % 10) / 10;
                    }
                    else{
                        carry = 0;
                    }
                    numA /= 10;
                    numB /= 10;
                }
                if(carryTimes == 0){
                    System.out.println("No carry operation.");
                }
                else if(carryTimes == 1){
                    System.out.println("1 carry operation.");
                }
                else{
                    System.out.println("" + carryTimes + " carry operations.");
                }
            }
            in.close();
        }catch(Exception e){
            System.out.println("Input error!");
        }
    }
};
 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 awesq123 的頭像
    awesq123

    awesq123的部落格

    awesq123 發表在 痞客邦 留言(0) 人氣()