Find 3-friendly Integers
生活随笔
收集整理的這篇文章主要介紹了
Find 3-friendly Integers
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Find 3-friendly Integers
題意:
定義一個自然數是精妙的,如果他存在一個字串(允許前導0)是3的倍數
問L到R中精妙的數的個數
題解:
數位dp可以做(但我不會。。。)
用結論來做,當n>=100時(即為3位數時)必然是精妙的數,這樣只需要對<100的暴力即可。這樣想,對于每一位mod3,也就是每一位是0/1/2中的一個,如果是0直接合法,也就是剩下3位中分別選1/2,怎么都會有和為3倍數的情況
代碼:
#include<iostream> #include<cstdio> using namespace std; int T; long long L,R; int main() {cin>>T;for(int k=1;k<=T;k++){cin>>L>>R;if(L>=100) cout<<R-L+1<<endl;else{if(R<100){int sum=0;for(int i=L;i<=R;i++){if(i%3==0) {sum++;continue;}else{if(i>=10){if((i/10)%3==0||(i%10)%3==0){sum++;continue;}}}}cout<<sum<<endl;}else{long long sum=0;sum+=R-100+1;for(int i=L;i<100;i++){if(i%3==0) {sum++;continue;}else if(i>=10){if((i/10)%3==0||(i%10)%3==0){sum++;continue;}}}cout<<sum<<endl;}}}return 0; }總結
以上是生活随笔為你收集整理的Find 3-friendly Integers的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 肉可以冷冻多久 猪肉在冷冻状态下最多可以
- 下一篇: (txd安卓)