題目描述
某輛汽車有一個里程表,該里程表可以顯示一個整數,為該車走過的公里數。然而這個里程表有個毛病:它總是從3變到5,而跳過數字4,里程表所有位(個位、 十位、百位等)上的數字都是如此。例如,如果里程表顯示339,汽車走過1公里之后,該里程表顯示350。
輸入
輸入一個整數num,表示里程表顯示的數值,1 < num < 1000,且一定不含整數4。
輸出
輸出一個整數,為該汽車實際行駛的公里數。例如,如果該里程表顯示55,則實際走過的公里 數是40。
樣例輸入
106
樣例輸出
86
提示
方法1:這對本題數據規模較小的情況,可用一個循環來模擬。用一個1~num的循環,在循環過程中,用另一個循環變量計數,統計不含數字4的整數個數。
方法2:此題稍加修改,可轉換為一個9進制轉換為10進制的問題,此方法更通用。
來源
****?#include<stdio.h>?
?
int main(void)?
{?
??? int number;?
??? int i, count = 0;?
?
??? scanf("%d", &number);?
?
??? for(i = 1; i <= number; i++)??
??? {?
???????? if( i %10 != 4 && (i /10) % 10 != 4 && (i /100 ) % 10 != 4 ) //跳過有4的整數?
??????????? count++;?
??? }?
?
??? printf("%d\n", count);?
??? return 0;?
}?
?
/*也可用continue跳過有4的整數
for(i = 1; i <= number; i++)?
??? {
??? //跳過有4的整數????????
??? if( i %10 == 4)coutinue;
??? if ((i /10) % 10 == 4)coutinue;
??? if( (i /100 ) % 10 == 4 )coutinue;?
?
??????? count++;
??? }