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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

ccf-csp #201912-1 报数

發布時間:2025/3/20 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ccf-csp #201912-1 报数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目思路

題意在題目描述中已經表達得很清楚了,如果注意讀題,不遺漏信息,這應該是一道妥妥的水題。

設變量 cntcntcnt 表示報出了多少個數字(不計入被跳過的數),變量 numnumnum 表示包含跳過的數,當前報到多少,數組 aaa 記錄四個人被跳過的次數,函數 checkcheckcheck 檢查 numnumnum 是否為包含7或者為7的倍數的數。

我們只要去模擬這個報數的過程,不斷遞增 numnumnum 的值,同時用 checkcheckcheck 函數檢查是否需要跳過,如果不需要跳過就增加 cntcntcnt 的值,否則增加被跳過的次數。直到 cntcntcnt 的值等于 nnn

我們發現,(num?1)%4==0(num-1)\%4==0(num?1)%4==0的數是輪到甲報的,(num?1)%4==1(num-1)\%4==1(num?1)%4==1的數是輪到乙報的……,于是我們就可以在他們被跳過時,用 a[(num?1)%4)]++a[(num-1)\%4)]++a[(num?1)%4)]++ 進行計數。

代碼如下

#include <bits/stdc++.h> using namespace std; typedef long long ll; const int inf = 0x3f3f3f3f; const int maxn = 1e3 + 10; int n, a[10];/*** 檢查n是否為包含7或者為7的倍數的數* 如果是就返回0,否則返回1*/ int check(int n) {if (n % 7 == 0) return 0;while (n) {if (n % 10 == 7) return 0;n /= 10; }return 1; }int main() {scanf("%d", &n);int cnt = 0, num = 0;while (1) {num++;if (check(num)) {cnt++;} else {a[(num - 1) % 4]++;}if (cnt == n) break;}for (int i = 0; i < 4; i++) printf("%d\n", a[i]);return 0; }

總結

以上是生活随笔為你收集整理的ccf-csp #201912-1 报数的全部內容,希望文章能夠幫你解決所遇到的問題。

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