fork download
  1. #include <stdio.h>
  2.  
  3. // 0-15の数値を16進数の1文字として表示する関数
  4. void print_hex(int n) {
  5. if (n >= 0 && n <= 9) {
  6. printf("%d", n);
  7. } else if (n >= 10 && n <= 15) {
  8. printf("%c", 'A' + (n - 10));
  9. }
  10. }
  11.  
  12. // 10進数nを16進数表記で表示する再帰関数
  13. void tohex(int n) {
  14. if (n == 0) return; // ベースケース
  15.  
  16. tohex(n / 16); // 再帰的に上の桁を先に処理
  17. print_hex(n % 16); // 余りを表示(これが現在の桁になる)
  18. }
  19.  
  20. int main() {
  21. int n;
  22. printf("正の整数nを入力してください: ");
  23. scanf("%d", &n);
  24.  
  25. printf("%dの16進数表記: ", n);
  26. if (n == 0) printf("0");
  27. else tohex(n);
  28. printf("\n");
  29.  
  30. return 0;
  31. }
Success #stdin #stdout 0s 5316KB
stdin
15
stdout
正の整数nを入力してください: 15の16進数表記: F