1566. 幸运锁(lucky.pas/c/cpp)

题目描述

有一把幸运锁,打开它将会给你带来好运,但开锁时需要输入一个正整数(没有前导0)。幸运锁有一种运算,对于一个正整数,返回他的相邻两位数字间的差,如1135,运算结果为22(会去掉前导0)。
现在已知只有经过反复运算最终结果为7的数才能打开这把锁,给你一个区间[a,b],问该区间中有多少个能打开幸运锁的幸运数。

输入

第一行两个整数a,b。

输出

一个整数K,表示共有多少个这样的数。

样例输入

1 10

样例输出

1

数据范围限制

【限制】

1<=a<=b<=10^9。

30%的数据有b<=10^6。

Solution(28分)

貌似正好遇上服务器出问题了呢

这就不是我的问题了

(这也不是服务器的问题嘛!你怎么可以这样想呢?)

我觉得我的代码是正确的

而测试点2呢,我用一个打表的程序也过了

table

首先奉上我的table.cpp

//幸运锁表
#include<bits/stdc++.h>
using namespace std;
int n,m,a,b,lucky,h,f[],ans;
int logn(int num)
{
if(num==) return ;
return log(num)/;
}
void fj(int num)
{
int len=logn(num);
for(int i=;i<len;i++)
{
f[i]=((int)(num/pow(,i)))%;
}
return;
}
void run(int num[],int len)
{
// 检测是否为0000000..7||0000000..*
bool flag7=;
for(int i=;i<len;i++)
if(num[i]!=) {
flag7=;
break;
} if(flag7)
{
if(num[]==)
{
cout<<h<<",";
ans++;
} return;
} // 算差
int w[len];
memset(w,,sizeof(w));
for(int i=;i<len-;i++)
w[i]=abs(num[i]-num[i+]);
// 删除前导零
int flag0=;
for(int i=len-;i>=;i--)
{
if(flag0)
{
if(num[i]==)
len--;
else
flag0=;
}
else
break;
}
run(w,len-);
}
int main()
{
// freopen("lucky.in","r",stdin);
// freopen("lucky表.txt","w",stdout);
for(h=;h<=;h++)
{
//分解数字
fj(h);
run(f,logn(h));
}
cout<<"\nans="<<ans;
return ;
}

想要过程解释,还请看注释。

正解会再做详细解释。

这个cpp可以打出从a~b所有满足条件的数

但我并没有找到什么规律鸭

Code(46分)

//幸运锁
#include<bits/stdc++.h>
using namespace std;
int n,m,a,b,lucky,f[],ans;
int logn(int num)
{
if(num==) return ;//本来log(1)会等于0的
return log(num)/;
}
void fj(int num)
{
int len=logn(num);
for(int i=;i<len;i++)
{
f[i]=((int)(num/pow(,i)))%;
}
return;
}
void run(int num[],int len)
{
// 检测是否为0000000..7||0000000..*
bool flag7=;
for(int i=;i<len;i++)
if(num[i]!=) {
flag7=;
break;
}
//如果flag7==1,就说明该数只有个位了,其他位全是零
if(flag7)
{
if(num[]==)
ans++;
return;//一个位数是一定不能变成7的
}
// 算差
int w[len];
memset(w,,sizeof(w));//开始时忘了初始化,坑了我好久
for(int i=;i<len-;i++)
w[i]=abs(num[i]-num[i+]);//相邻两数之差要取绝对值
// 删除前导零
int flag0=;
for(int i=len-;i>=;i--)
{
if(flag0)
{
if(num[i]==)
len--;
else
flag0=;
}
else
break; }
run(w,len-);//就是这里! 求差后,len一定会自然的少一个
}
int main()
{
// freopen("lucky.in","r",stdin);
// freopen("lucky.out","w",stdout);
cin>>a>>b;
for(int i=a;i<=b;i++)
{
//分解数字
fj(i);
run(f,logn(i));
}
cout<<ans; return ;
}

修改了这个地方后,成功的又对了一个测试点。

下载一个数据看看?

File Not Found!

老师呢,看了看那些100分的同学的代码。

大小都是几MB几MB的。

又因为我是时间超限……

你明白了吗?

打表!

那个。。。源代码太长,我我我上传不了。

就先发个压缩包吧

https://files-cdn.cnblogs.com/files/send-off-a-friend/lucky.rar

数论

等待着数论的方法出现。。。

老师加油!

纪中5日T3 1566. 幸运锁(lucky.pas/c/cpp)的更多相关文章

  1. 纪中21日T3 2118. 【2016-12-30普及组模拟】最大公约数

    纪中21日T3 2118. 最大公约数 (File IO): input:gcd.in output:gcd.out 时间限制: 1000 ms  空间限制: 262144 KB  具体限制 Goto ...

  2. 纪中10日T3 2296. 神殿 bfs

    2296. 神殿 (File IO): input:temple.in output:temple.out 时间限制: 1500 ms  空间限制: 524288 KB  具体限制 Goto Prob ...

  3. 纪中17日T1 2321. 方程

    纪中17日T1 2321. 方程 (File IO): input:cti.in output:cti.out 时间限制: 1000 ms  空间限制: 262144 KB  具体限制   Goto ...

  4. 纪中10日T1 2313. 动态仙人掌

    纪中10日 2313. 动态仙人掌 (File IO): input:dinosaur.in output:dinosaur.out 时间限制: 1500 ms  空间限制: 524288 KB  具 ...

  5. 纪中23日c组T3 2161. 【2017.7.11普及】围攻 斐波那契数列

    2161. 围攻 (File IO): input:siege.in output:siege.out 时间限制: 1000 ms  空间限制: 262144 KB  具体限制   Goto Prob ...

  6. 纪中23日c组T2 2159. 【2017.7.11普及】max 洛谷P1249 最大乘积

    纪中2159. max 洛谷P1249 最大乘积 说明:这两题基本完全相同,故放在一起写题解 纪中2159. max (File IO): input:max.in output:max.out 时间 ...

  7. 洛谷P1880 [NOI1995]石子合并 纪中21日c组T4 2119. 【2016-12-30普及组模拟】环状石子归并

    洛谷P1880 石子合并 纪中2119. 环状石子归并 洛谷传送门 题目描述1 在一个圆形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石 ...

  8. 纪中20日c组T2 2122. 【2016-12-31普及组模拟】幸运票

    2122. 幸运票 (File IO): input:tickets.in output:tickets.out 时间限制: 1000 ms  空间限制: 262144 KB  具体限制 Goto P ...

  9. 纪中18日c组模拟赛

    T2 GMOJ2127. 电子表格 (File IO): input:excel.in output:excel.out 时间限制: 1000 ms  空间限制: 262144 KB  具体限制   ...

随机推荐

  1. 基于python2+selenium3+pytest4的UI自动化框架

    环境:Python2.7.10, selenium3.141.0, pytest4.6.6, pytest-html1.22.0, Windows-7-6.1.7601-SP1 特点:- 二次封装了s ...

  2. JumpServer部署与管理

    一.JumpServer 堡垒机概述 JumpServer由Python/Django进行开发.使用GNU GPL v2.0开源协议.也是全球首款完全开源的堡垒机.同时配备了业界领先的Web Term ...

  3. HessianSharp如何部署到IIS7上?

    第一:添加映射 第二:选择经典

  4. STM32,ARM,Keil工具相关

    One ELF Section per Function https://blog.csdn.net/iceiilin/article/details/6091575 因此,可以得出,选项One EL ...

  5. android wifi断开原因分析

    最近在解bug的过程中经常遇到密码正确但处于saved的状态,总结原因有已下几种: 1 在ASSOCIATING阶段由于丢包导致ASSOC REJECT 03-16 09:22:12.440 D/Wi ...

  6. href的几个特殊值

    a href ="" :默认打开的还是当前页面,会刷新一下重新打开. a href ="#": 浏览器地址栏网址后面会多显示1个#.不会刷新页面,会回到页面顶部 ...

  7. struts2动态调用+Servlet过滤器+struts2拦截器

    周末真的是懒到心慌...... 本文是在完整s2sh项目基础上添加的,不太了解s2sh项目构建的朋友可以先参考一下这几篇文章: eclipse环境下基于tomcat-7.0.82构建struts2项目 ...

  8. VSTO开发指南(VB2013版) 第三章 Excel编程

    通过前两章的内容,有了一定的基础,但进入第三章,实例的步骤非常多,并且随着VS版本的升级,部分功能菜单界面发生了很大变化,所以,第三章的案例我将逐步编写! 实例3.1的目标就是给Excel写一个加载宏 ...

  9. Java虚拟机——JVM

    一.JVM整体架构 1.JVM(Java虚拟机):指以软件的方式模拟具有完整硬件系统功能.运行在一个完全隔离环境中的完整计算机系统,是物理机的软件实现.常用的虚拟机有VMWare.Virtual Bo ...

  10. RadioButton改写的开关按钮

    先上效果图: 这个控件其实是俩个RadioButton,通过样式就可以实现. 样式资源: <Style x:Key="Tong_Yong_RadioButtonStyle" ...