close

先想想虛擬碼怎麼寫或流程圖怎麼畫 再轉化成程式碼

就可以解出

網址:

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

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

#include <stdio.h>

int Summing_digits(int);

int main()
{
    int num;

    while(scanf("%d", &num) == 1 && num)
    {
        do
            num = Summing_digits(num);
        while(num / 10);

        printf("%d\n", num);
    }

    return 0;
}

int Summing_digits(int num)
{
    int sum;

    for(sum = 0; num; num /= 10)
        sum += num % 10;

    return sum;
}
 

 

-2015-05-22---------------------------------------------------------

import java.util.*;

public class main {

    public static void main(String[] args) {
        try {
            final Scanner in = new Scanner(System.in);
            while (in.hasNextInt()) {
                int num = in.nextInt();
                if (0 == num) {
                    break;
                }
                while ((num = doSummingDigits(num)) >= 10) {
                }
                System.out.println("" + num);
            }
            in.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private static int doSummingDigits(int val) {
        int result = 0;
        while (val > 0) {
            result += val % 10;
            val /= 10;
        }
        return result;
    }
}
 

arrow
arrow
    全站熱搜

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