POJ 2719 Faulty Odometer
来源:互联网 发布:windows内核启动慢 编辑:程序博客网 时间:2024/06/06 09:51
POJ 2719 Faulty Odometer
题目链接:http://poj.org/problem?id=2719
与 第37届ACM/ICPC天津赛区网络赛1001题 相类似
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4278
题意:一个坏的里程表,计数事会跳过4,像3的是时候就直接到5,跳过4.
思路:
以259为例,将259分为2个100和5个10和9。
里程表5个10,真实的数是4个10(其中有1个是4开头的),里程表的10,真实的数是9。4*9
同理,里程表的2个100,真实的数是2*81
里程表的9。真实的数是8
答案是36+162+8=206;
通过同样的方法,拆分开,
打表打出。10,100,1000,1000...的数,(发现是9进制)。
含有大于等于4的就-1;
同样的方法去做下HDU4278的那道吧,链接在上面
打表代码:
#include<stdio.h>int main(){int i,count;count=0;for(i=1;i<=100;i++){if(i%10==4 || (i%100)/10==4 || (i%1000)/100==4){count++;}printf("%d : %d\n",i,i-count);}return 0;}
AC代码:
#include<stdio.h>#include<string.h>int main(){int s[10]={0,9,81,729,6561,59049,531441,4782969,43046721,387420489};char num[20];int len,i,ans,m;while(scanf("%s",num)!=EOF){if(strcmp(num,"0")==0)break;ans=m=0;len=strlen(num);for(i=0;i<len;i++)m=m*10+num[i]-'0';for(i=0;i<len-1;i++){if(num[i]>'4')num[i]=num[i]-1;ans+=s[len-i-1]*(num[i]-'0');}if(num[i]>='4')num[i]--;ans+=(num[i]-'0');printf("%d: %d\n",m,ans);}return 0;}
0 0
- poj 2719 Faulty Odometer
- [POJ]2719 Faulty Odometer
- POJ 2719 Faulty Odometer
- POJ-2719 Faulty Odometer
- POJ 2719 Faulty Odometer G++
- HDU 4278 Faulty Odometer --》[POJ]2719 Faulty Odometer 的变型
- POJ 2719 Faulty Odometer 解题报告
- POJ:2719 Faulty Odometer(数学,排列组合)
- poj 2719 Faulty Odometer (数学思维)
- POJ-----2719---Faulty Odometer---进制转换(水题)
- Faulty Odometer
- Faulty Odometer
- Faulty Odometer
- Faulty Odometer
- Faulty Odometer
- Faulty Odometer
- HDU 4278 (POJ 2719有点不同)Faulty Odometer(进制转换)
- sicily 1240 Faulty Odometer
- [转]objective-c 关于self的用法总结
- 广电总局停止发放互联网电视集成服务牌照
- 《软件框架设计的艺术》
- 异常的类型
- Java 一次读取文本中全部内容
- POJ 2719 Faulty Odometer
- ubuntu软件安装与卸载
- GVIM: Unable to create Ubuntu Menu Proxy: Timeout was reached
- word转换成pdf转换器
- XML解析
- NSDate 时间和日期
- 《游戏中的人工智能》笔记
- 单片机驱动DM9000网卡芯片
- Mongoose源码剖析:外篇之web服务器