# 1111 程式設計實習 (資訊一乙) UVA10783 Odd Sum OJ詳解 ## Odd Sum ### 題目敘述 給你一個範圍 a 到 b ,請你找出 a 與 b 之間所有奇數的和。 例如:範圍 [3, 9] 中所有奇數的和就是 3 + 5 + 7 + 9 = 24 。 --- ### 題目輸入 輸入的第一列有一個整數 T (1≦T≦100),代表以下有多少組測試資料。 每組測試資料為兩列,包含兩個數 a 與 b (0≦a≦b≦100)。 --- ### 題目輸出 每組測試資料輸出一列,內容為 a 及 b 間所有奇數的和。 --- ### 範例輸入 #1 ``` 2 1 5 3 5 ``` --- ### 範例輸出 #1 ``` Case 1: 9 Case 2: 8 ``` --- ### 解析 首先,題目要求的是a和b中間奇數的和。所以有最大值與最小值,根據輸入我們把a設成最小值b為最大值然後再設個T為資料數,然後再設一個變數sum用來儲存被加起來的數值。 ``` int t,min,max,sum,i=0,j=0; ``` 接著輸入測資數量 ``` scanf("%d\n",&t); ``` 然後輸入測資 **使用for迴圈輸入測資** 接著將sum這個變數設成0 ```c= for(i = 1;i <= t;i++){ scanf("%d\n%d",&min,&max); sum=0; ``` 下一步來計算sum的值。 **使用for迴圈來計算** 使用for迴圈因為for迴圈可以設定開始與結束。 把j的變數數值變成剛剛輸入進來的min,然後結束就是當j的值變成max的值就會結束。 接著判斷迴圈裡面的數值==也就是兩個數字的範圍裡的數==,使用%2來判斷,**因為奇數除以2的餘數都會是1**,所以當迴圈裡數字的餘數等於1時就把他家到sum裡。 ```c= for(j = min;j <= max;j++){ if((j%2) == 1){ sum = sum + j; } } ``` 最後在print出來。 ```c= printf("Case %d: %d\n",i,sum); ``` 最終程式碼 ```c= #include<stdio.h> int main(){ int t,min,max,sum,i=0,j; scanf("%d\n",&t); for(i = 1;i <= t;i++){ scanf("%d\n%d",&min,&max); sum=0; for(j = min;j <= max;j++){ if((j%2) == 1){ sum = sum + j; } } printf("Case %d: %d\n",i,sum); } return 0; } ```