小黑华丽的逆袭!!!
2015-08-14 21:10
232 查看
小黑华丽的逆袭机会!!!!
小黑天天在ACM办公室训练,但是由于长得黑,天天被黑,感觉好无力,黑并不是错,只是光太喜欢他,不忍从他脸上离开。
正所谓日有所思,夜有所梦。一天他做个一个梦,梦见自己走在一个17 777 777 777层的塔里,塔的层数从 -8 888 888 888 到 8 888 888 888层,第0层在-1层和1层之间。这时,有一个声音从远处传来,“我可以帮助你变白,但是你要往上走,走到含有幸运数字8的一层停下来,但是你现在所在的层数里面如果含8,不算,你需要要往上走,例如你在18层,需要再往上走10层”。
小白需要你的帮助,请帮他算出他最少要走几层,才能实现他的愿望。
输入:
只有一行,包含一个整数a --- 小黑所在的层数。
输出:
输出一个整数,小黑为了实现愿望而走的最少层数。
样例输入:
179
样例输出
1
小黑天天在ACM办公室训练,但是由于长得黑,天天被黑,感觉好无力,黑并不是错,只是光太喜欢他,不忍从他脸上离开。
正所谓日有所思,夜有所梦。一天他做个一个梦,梦见自己走在一个17 777 777 777层的塔里,塔的层数从 -8 888 888 888 到 8 888 888 888层,第0层在-1层和1层之间。这时,有一个声音从远处传来,“我可以帮助你变白,但是你要往上走,走到含有幸运数字8的一层停下来,但是你现在所在的层数里面如果含8,不算,你需要要往上走,例如你在18层,需要再往上走10层”。
小白需要你的帮助,请帮他算出他最少要走几层,才能实现他的愿望。
输入:
只有一行,包含一个整数a --- 小黑所在的层数。
输出:
输出一个整数,小黑为了实现愿望而走的最少层数。
样例输入:
179
样例输出
1
#include <stdio.h> int f(__int64 n) { while(n) { if(n%10==8||n%10==-8) return 1; n = n/10; } return 0; //看看输入的数字是否含8 } __int64 solve(__int64 n) //枚举n,一直到有8 { __int64 cnt = 0,i; for(i = n; ;i++) { if(f(i)) break; cnt++; } return cnt; } int main() { __int64 ans = 0; __int64 n; scanf("%I64d",&n); if(f(n)) //现在所在楼层是否含8 { ans++; //含8的情况中,先将ans加成1,相当于多上一层,然后看与8的关系 ans += solve(n+1); } else { ans += solve(n); } printf("%I64d\n",ans); return 0; }
相关文章推荐
- 邮件的发送与接收原理(javaweb)
- export setenv
- Reward 2647 (拓扑排序+邻接表)
- R语言缺失值处理
- Linux的mount命令详解
- 配置python环境
- POJ 1458 Common Subsequence
- centos笔记
- 使用virtualenv搭建独立的Python环境
- 如何实现文件的断点续传,文件下载
- web网站服务(二)
- HDU 2563 统计问题(递推)
- Html5+移动端小应用分享(得见)
- ReentrantReadWriteLock实现
- nyoj 14 会场安排问题
- SQLServer With As 用法
- 129. Sum Root to Leaf Numbers
- JavaScript类型检测汇总
- 添加多盟SDK 库函数
- JDBC入门try/catch型