輸入一個整數 n,隨後輸入 n 個整數。計算這 n 個整數中所有奇數的乘積。輸入包含多組測試數據,以 EOF 結束。若無奇數,乘積為 1(空乘積定義)。
初始化乘積為 1。遍歷 n 個數字,若為奇數(`num % 2 != 0`),則乘入結果。注意:負奇數也參與乘積計算。
#include <stdio.h>
int main(void) {
int n, i, num;
long long product; // 乘積增長極快,必須用長整型
while (scanf("%d", &n) != EOF) {
product = 1;
for (i = 0; i < n; i++) {
scanf("%d", &num);
if (num % 2 != 0)
product *= num;
}
printf("%lld\n", product);
}
return 0;
}
使用 `int` 存儲乘積會導致溢出錯誤;將初始值設為 0 會導致結果恆為 0。