[COCI2017-2018#6] Davor

题目描述
After successfully conquering the South Pole, Davor is preparing for new challenges. Next up is the Arctic expedition to Siberia, Greenland and Norway. He begins his travels on 31 December 2018, and needs to collect ​N kunas (Croatian currency) by then. In order to do this, he has decided to put away ​X (​X ≤ 100) kunas every Monday to his travel fund, ​X + K kunas every Tuesday, ​X + 2* ​K every Wednesday, and so on until Sunday, when he will put away ​X + 6* ​K kunas. This way, he will collect money for 52 weeks, starting with 1 January 2018 (Monday) until 30 December 2018 (Sunday).

If we know the amount of money ​N​, output the values ​X and ​K so that it is possible to collect the ​exact money amount in the given timespan. The solution will always exist, and if there are multiple, output the one with the greatest ​X ​ and smallest ​K ​.

输入格式
The first line of input contains the integer ​N​ (1456 ≤ ​N​ ≤ 145600), the number from the task.

输出格式
The first line of output must contain the value of ​X (​0 < ​X ​≤ 100 ​)​, and the second the value of K (K ​> 0 ​)​.

题意翻译
在征服南极之后,Davor 开始了一项新的挑战。下一步是在西伯利亚、格林兰、挪威的北极圈远征。他将在 2018 年 12 月 31 日开始出发,在这之前需要一共筹集 n 元钱。他打算在每个星期一筹集 x 元,星期二筹集 x+k 元,……,星期日筹集 x+6k 元,并在 52 个星期内筹集完。其中 x,k 为正整数,并且满足 1≤x≤100。

现在请你帮忙计算 x,k 为多少时,能刚好筹集 n 元。

如果有多个答案,输出 x 尽可能大,k 尽可能小的。注意 k 必须大于 0。

输入输出样例
输入 #1复制

1456

输出 #1复制

1
1

输入 #2复制

6188

输出 #2复制

14
1

输入 #3复制

40404

输出 #3复制

99
4

根据题意我们不难列出一个方程52×(7x+21k)=n52\times(7x+21k) = n52×(7x+21k)=n可写成x+3k=n÷364x+3k=n\div364x+3k=n÷364那么未知数有x和k。题意可知k>0且k是整数,答案要求k尽可能要小的。那么显然k=1就是解,此时 x=n / 364−3。可是题目还有一个限制那么就是x的取值范围是1~100(包括1和100)。那么问题来了,如果n>103的话k = 1时x会大于100显然不符合题意了。n>103的时候k需要取更大值。观察公式不难发现k 每变大 1,x 就要 −3,直到 x≤100 为止。我们可以分情况讨论答案。如果 n 是 3 的倍数,由x=n/364−3k 得 x 为 3 的倍数,最大为 99,k 是 (n/364−99)/3。n 模 3 余 1 则 x 也模 3 余 1,最大为 x=100,k 是 (n/364−100)/3,n 模 3 余 2 则 x 也模 3 余 2最大为 x=98,k 是(n/364−98)/3。
代码实现(AC代码C++)

#include <iostream>using namespace std;int main()
{int n;cin >> n;//提前除好364n /= 364;//k = 1的情况if (n <= 103)cout << n - 3 << endl << 1 << endl;elseif (n % 3 == 0)cout << 99 << endl << (n - 99) / 3 << endl;else if (n % 3 == 1)cout << 100 << endl << (n - 100) / 3 << endl;else cout << 98 << endl << (n - 98) / 3 << endl;return 0;
}

【入门3】循环结构 P4956 [COCI2017-2018#6] Davor相关推荐

  1. java入门(七) | 循环结构

    java入门(七) | 循环结构 java入门系列,从零开始!!! 上一期是对方法(method)的基本运用的讲解和方法重载的实练 . 这一期是对循环结构的讲解,除了for循环你还知道几种?他们的使用 ...

  2. 牛客竞赛语法入门班-循环结构习题代码(1)

    链接:登录-专业IT笔试面试备考平台_牛客网 来源:牛客网 目录 1001 上下金字塔 1002 数字三角形 1003 字符金字塔 1004 涂小天与他的画 1005 箭形图案 1006 牛牛学数列 ...

  3. 牛客竞赛语法入门班循环结构习题C++版本参考代码及部分解析

    重点题 1001 上下金字塔 1002 数字三角形 1003 字符金字塔 1008 牛牛学数列3 1017 栗酱数数 1018 有趣的二进制 1019 [NOIP2006]数列 1024 买铅笔 10 ...

  4. 牛客竞赛语法入门班循环结构习题【完结】

    入门级别的题 题单地址:https://ac.nowcoder.com/acm/contest/19305?from=acdiscuss#question/%22page%22%3A1 目录 上下金字 ...

  5. 洛谷刷题记录(python)【入门3】循环结构

    [入门3]循环结构https://www.luogu.com.cn/training/102#problemsP5718 [深基4.例2]找最小值 n = int(input()) a = [int( ...

  6. python入门之控制结构-循环结构_Python 入门之控制结构 - 循环结构(一)

    第1关:While 循环与 break 语句 程序的第三大结构是循环结构.在此结构中,通过一个判断语句来循环执行一个代码块,直到判断语句为假时跳出循环.循环语句分为while循环.for循环.循环嵌套 ...

  7. Java入门之顺序、选择、循环结构

    Java入门之顺序.选择.循环结构 顺序结构: package com.LynnStudy.scanner; import java.util.Scanner; /*** @Author hql* @ ...

  8. Python基础入门(2):简单函数(input,eval,print)与循环结构

    写在前面: 笔者是来自西部某非著名高校的一名Python初学者,现本着知识共享,资源共享的原则将我的个人笔记分享在此,本系列博客是我对Python学习的一系列知识和方法的汇总,同时希望能为后来者提供一 ...

  9. Python入门之控制结构 - 循环结构

    Python入门之控制结构 - 循环结构 第1关:While循环与break语句 第2关:for循环与continue语句 第3关:循环嵌套 第4关:迭代器 第1关:While循环与break语句 · ...

最新文章

  1. 独家 | 25道SVM题目,测一测你的基础如何?(附资源)
  2. AD5933使用外部时钟获得更低的分析频率
  3. 软件测试风险评估分析
  4. Ansible自动化运维基础-------ad-hoc
  5. 《ArcGIS Engine+C#实例开发教程》第七讲 图层符号选择器的实现2
  6. kafka管理神器-kafkamanager
  7. SAP Spartacus storefrontapp不是运行在简单的tomcat服务器上
  8. stm32可以移植linux系统吗,如何在STM32上移植Linux?超详细的实操经验分享
  9. WPF DataGrid 对行中单元格的访问
  10. 【2021杭电多校赛】2021“MINIEYE杯”中国大学生算法设计超级联赛(1)签到题15869
  11. Cisco的路由器、交换机设置 Console 密码和 Enable 密码
  12. 如何在excel中将数据转置
  13. 为了找工作学习ssm
  14. 【慕课笔记】第一章 JAVA初体验 第3节 使用记事本编写JAVA程序
  15. doc文件批量转换成htm以及htm批量转成xlsx
  16. 关于阻容耦合电路及阻容耦合分压
  17. google身份验证器,java服务端实现 GoogleAuthenticator
  18. oracle中text是什么意思,ORACLE TEXT是什么
  19. Java调用阿里云OSS下载文件
  20. php微信公众号模板消息主动推送

热门文章

  1. linux libcurl 多线程,libcurl 多线程共享样例 VSCode CMake
  2. 数字频率、模拟频率、角频率的区别
  3. 搭建jump server管理公司服务器
  4. css实现九宫格,不定宽高百分比(使用padding实现Div高度根据自适应宽度(百分比)调整)
  5. 【ABAQUS】模态分析
  6. 第12节:RNN原理及numpy实现
  7. 神经网络的传播原理——看不懂你来打我
  8. 系统运维:北京某万相融通高级工程师笔试题
  9. 跑动大数据的笔记本配置_大数据告诉你,最完美的跑步姿势就是你这样的!
  10. python对图片中的表格拆分