#3995. 取数问题(takenumber)
取数问题(takenumber)
问题描述
任意给出正整数n和k,例如n=16,k=4,然后按下列方法取数:
- 第一次取1,取数后的余数为16-1=15
- 第二次取2,取数后的余数为15-2=13
- 第三次取4,取数后的余数为13-4=9
- 第四次取8,取数后的余数为9-8=1
- 当第五次取数时,因为余数为1,不够取(要取16),此时作如下处理:余数1+k(4)=5,再从1开始 取。
- 第五次取1,取数后的余数为5-1=4
- 第六次取2,取数后的余数为4-2=2
- 当第七次取数时,因为余数为2,不够取(要取4),此时作如下处理:余数2+k(4)=6,再从1开始 取。
- 第七次取1,取数后的余数为6-1=5
- 第八次取2,取数后的余数为5-2=3第九次要取4,但不够取,余数3+k(4)=7,继续取。
- 第九次取1,取数后的余数为7-1=6
- 第十次取2,取数后的余数为6-2=4
- 第十一次取4,取数后的余数为4-4=0,正好取完。
由此可见,当n=16,k=4时,按上面方法11次才能正好取完。
输入格式
输入一行两个整数,分别表示n和k。
输出格式
若能取完,输出“OK”及取数的次数(中间用一个空格隔开);若永远不能取完,输出“ERROR”。
样例
54945 36904
OK 442156
数据范围
来源
- 信息学奥赛之数学一本通
- stong9070整理