检查金币
2016-06-05 09:46
375 查看
Description
ACM公司生产金币的设备出了问题,使得最近生产的10批金币的重量出现了波动:本来金币的标准重量是10克,但现在有的可能是11克,有的可能9克,也有可能是10克。 现在只知道同一批金币的重量是相同的,你的任务是要把每批的单枚金币的重量找出来。
你的设备有一个电子秤,但只允许称量一次!
你从第1批中取1枚金币,第2批取3枚,...第i批取3^(i−1)枚...,第10批取3^9枚,总共29524枚。将这29524枚金币放在电子秤上,得到了总重量,就交给你的程序去!
Input
有多个测试序列,每个测试序列一行,包含一个6位的正整数W(265716≤W≤324764),表示29524枚金币的总重量
Output
每个测试序列输出一行,包含10个用空格分开的正整数,分别表示10批金币的单枚重量,注意行尾没有空格。
Sample Input
265716324764295240
Sample Output
9 9 9 9 9 9 9 9 9 911 11 11 11 11 11 11 11 11 1110 10 10 10 10 10 10 10 10 10个人思路:
第 i 批金币数量是 3^i-1个,对于第2批以后的金币都能被3整除,因此总金额与基础金额9的差取余3的余数就是第一批与基础金额9的金额差,将金额差除3, 每批的数量相当于除了3,第二批的金额差按照前一步第一批金额差的算,同理,算出10批的金额。
示例代码:
#include<stdio.h>
#include<math.h>
int main()
{
int k;
int i;
while(scanf("%d",&k)!=EOF)
{
k-=265716;
for(i=0;i<10;i++)
{
if(i<9)
printf("%d ",9+k%3);
else
printf("%d\n",9+k%3);
k/=3;
}
}
return 0;
}
相关文章推荐
- 我的工具集1——集中删除系统中的消息队列
- PE文件的编写(一)
- 【C】斐波那契数列(非递归)
- 关于解决使用Ueditor时调用setContent()浏览器会报错问题
- 全文检索汇总
- 站立会议07(冲刺2)
- SQL SERVER 存储过程 显示26个小写字母及其对应的ASCII码值
- Viewpager + fragment,其中一些fragment不被保存在内存,切换导致初始化问题
- JavaScript和jquery获取父级元素、子级元素、兄弟元素的方法
- 转 Python爬虫实战一之爬取糗事百科段子
- 为手写UIButton、UITextField设置边框样式
- lucence基于数据库的搜索
- 内省(Introspector)操作JavaBean的属性
- es的版本和插件的版本
- Hadoop2.8.0新特性
- C#动态绘制心率折线图(串口通信)
- 个人总结
- SQL数据库中的主键与外键介绍
- thinkphp中模板替换
- Logistic Regression