码迷,mamicode.com
首页 > 其他好文 > 详细

USACO[19-20]Dec银组题解

时间:2019-12-14 20:50:58      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:题解   space   return   close   5*   cin   ace   freopen   出错   

1,MooBuzz

这题其实是道数学题。

我们先找找符合要求的数:1,2,4,7,8,11,13,14……

我们发现再往后找都是这8个数中的一个加15k如:16……19……29……

找规律发现k=n/8

ans=15*n/8+a[n%8](a[] = {14,1,2,4,7,8,11,13})

可我们发现n是8的倍数时会出错,特判一下当n%8==0时ans=15*n/8-1即可

#include <iostream>
#include <cstdio>
using namespace std;
int n, d;
int a[8] = {14, 1, 2, 4, 7, 8, 11, 13};
int main() {
    freopen("moobuzz.in", "r", stdin);
    freopen("moobuzz.out", "w", stdout);
    cin >> n;
    d = n / 8;
    if (n % 8) {
        cout << d * 15 + a[n % 8];
    } else {
        cout << d * 15 - 1;
    }
    fclose(stdin);
    fclose(stdout);
    return 0;
}

 持续更新ing

USACO[19-20]Dec银组题解

标签:题解   space   return   close   5*   cin   ace   freopen   出错   

原文地址:https://www.cnblogs.com/zcr-blog/p/12040605.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!