時間限制:1秒
空間限制:32768k
問題描述:
小q得到乙個神奇的數列: 1, 12, 123,...12345678910,1234567891011...。
並且小q對於能否被3整除這個性質很感興趣。
小q現在希望你能幫他計算一下從數列的第l個到第r個(包含端點)有多少個數可以被3整除。
輸入描述:
輸入包括兩個整數l和r(1 <= l <= r <= 1e9), 表示要求解的區間兩端。
輸出描述:
輸出乙個整數, 表示區間內能被3整除的數字個數。
輸入例子1:
2 5
輸出例子1:
3
例子說明1:
12, 123, 1234, 12345...
其中12, 123, 12345能被3整除。
解題思路:
觀察發現從1,12,123,1234,12345,123456。。。。。。能被三整除的規律為:不能,能,能,不能,能,能。。。。。。,以三為週期迴圈,因而將輸入的l,r分別移動至乙個週期的第乙個位置,在移動過程中標記需要剔除新引入的能被三整除的數目count1,標記需要加上移動過程中刪除的能被三整除的數目count,再按公式(r-l)/3*2-count1+count,即可求得能被三整除的數目。
#includeint main()
if(l%3 == 2)
l--;
}
while(r%3 != 1)
if(r%3 == 2)
}result = (r-l)/3*2 - count1 + count;
printf("%d\n",result);
}
2023年網易實習生筆試題集合之被3整除
問題描述 有乙個神奇的數列,計算這個數列有多少個數能被3整除。思考 這種問題蠻有意思的,因為它考驗的其實就是從不同的角度看問題的能力,但說實話在有限的時間內能get到這個點的除了智商高就是向你們這樣肯刷題的咯 反正當時我沒過t t 言歸正傳,任何乙個數對3求餘數不外乎3個數,0,1,2。顯然這道題是...
頭條2018實習生筆試
這個題的核心是用了乙個map,key是每一種喜好程度值k,然後把同乙個k的使用者id放在乙個vector裡。即map 每乙個查詢直接在要查詢的喜好程度k相應的使用者id陣列中找。include include include using namespace std int main 查詢 這個題我也...
網易2019實習生招聘筆試 被3整除
q得到乙個神奇的數列 1,12,123,12345678910,1234567891011.並且小q對於能否被3整除這個性質很感興趣。小q現在希望你能幫他計算一下從數列的第l個到第r個 包含端點 有多少個數可以被3整除。輸入描述 輸入包括兩個整數l和r 1 l r 1e9 表示要求解的區間兩端。輸出...