重用先前提到的SumOfDigits函式。程序的基本思路是,對於給定的範圍A到B(包含A和B),我們遍歷這個範圍內的每個數字n,對於每個數字,我們計算其數字之和SumOfDigits(n),然後檢查n是否可以被SumOfDigits(n)整除。如果可以,則打印該數字。
這裡是一個如何實現的示例:
c
Copy code
#include <stdio.h>
int SumOfDigits(int n) {
int sum = 0;
while (n > 0) {
sum += n % 10;
n /= 10;
}
return sum;
}
int main() {
int A, B;
printf("Enter two positive integers A and B (A <= B): ");
scanf("%d %d", &A, &B);
for (int n = A; n <= B; n++) {
int k = SumOfDigits(n);
if (n % k == 0) { // 檢查 n 是否可以被其位數之和整除
printf("%d\n", n);
}
}
return 0;
}
在這段代碼中,首先提示用戶輸入兩個正整數A和B,然後遍歷從A到B的每個數字。對於每個數字,它計算該數字的位數之和SumOfDigits(n),然後檢查這個數字是否可以被其位數之和整除。如果滿足條件,則將該數字打印出來。每個符合條件的數字都單獨印在一行上,這正好符合題目的要求。