您的位置:首页 > 其它

小黑华丽的逆袭!!!

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
#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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: