[プログラマー]Lv1ハザード数


1.質問
  • 問題説明
  • 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.
  • 制限条件
  • - x는 1이상 10000이하인 정수임
    2.回答の提出
    #include <stdio.h>
    #include <stdbool.h>
    #include <stdlib.h>
    
    bool solution(int x) {
        bool answer = true;
        int input = x;
        int sum = 0;
        
        while(input != 0){
            
            sum = sum + input%10;
            input = input/10;
        }
        
        
        if( x%sum != 0){
            answer = false;
        }
    
        
        return answer;
    }
    3.学んだこと
  • 最初はテストケースとして2桁であったため、2桁ごとにコードを記述した結果、最大10000個の値があることが判明し、
  • をさまよった.
  • 2 2 2回目のチャレンジの時は、while文ではなく、\%を何度も使いましたが、考えてみれば、while文で簡単に表現できます.コードを書くときはもっと頭を働かせなければなりません.