intさわだんのBlack History

刹那的レジェンドになりたい。

発展課題2

ほかにもたくさんやりかたあります

説明

N = 849259のとき
nauの値を
849259
84925
8492
849
84
8
とfor文で変更していき、各値を10で割ったあまりをsumに加えていく解法。

#include <stdio.h>

int main()
{
    int N;
    printf("Please input an integer N : ");
    scanf("%d",&N);
    int sum = N % 10,nau = N / 10;
    for(;nau != 0;nau /= 10){
        sum += nau % 10;
    }
    printf("Sum of each digit : %d\n",sum);
    
    return 0;
}

2017/04/25 追記

こっちのほうが素直なやり方かもしれない。(上のプログラムのfor文は若干くどい感あった。)

#include <stdio.h>

int main()
{
    int N;
    printf("Please input an integer N : ");
    scanf("%d",&N);
    
    int div = 10,sum = N % 10;
    
    while(N / div != 0){
        sum += (N / div)%10;
        div *= 10;
    }

    printf("Sum of each digit : %d\n",sum);
    
    return 0;
}