日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

信息学奥赛一本通 1090:含k个3的数 | OpenJudge NOI 1.5 30

發布時間:2025/3/17 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 信息学奥赛一本通 1090:含k个3的数 | OpenJudge NOI 1.5 30 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【題目鏈接】

ybt 1090:含k個3的數
OpenJudge NOI 1.5 30:含k個3的數

【題目考點】

1. 分離整數的各位數字

對于數字a,a%10可以取到其個位,a/=10(整除)可以去掉其當前個位。
重復這一過程,即可從低位到高位分離各位上的數字。
例:分離數字123的各位數

aa%10a/10
123312
1221
110

每次循環中,a變為a/10,循環中取a%10,為當前a的個位,即為分離出的數字。當a為0時循環結束。
其原理為對數字的按位權展開。
例:輸入一個整數,從低位到高位輸出其各位數字,并用空格分隔,代碼為:

int n; cin>>n; for(int a = n; a > 0; a /= 10)cout<<a % 10<<' ';

2. 判斷整除

【解題思路】

  • 首先判斷該數字是不是19的倍數
    • 如果是,那么統計該數字中有幾位是數字3
      • 如果數字3有k個,那么輸出YES
      • 否則輸出NO
    • 如果不是,直接輸出NO

【題解代碼】

解法1:

#include <bits/stdc++.h> using namespace std; int main() {int m, k;cin>>m>>k;int c = 0;//統計數字m中3的個數 if (m % 19 == 0)//如果m是19的倍數{while(m > 0){if (m % 10 == 3)c++;m /= 10;}if (c == k)//如果m的各位數字中有k個3 cout<<"YES"<<endl;elsecout<<"NO"<<endl;}elsecout<<"NO"<<endl;return 0; }

總結

以上是生活随笔為你收集整理的信息学奥赛一本通 1090:含k个3的数 | OpenJudge NOI 1.5 30的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。