zoukankan      html  css  js  c++  java
  • 纪中第五天(c组)(3)

    题目

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

    输入

       第一行两个整数a,b。

    输出

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

    样例输入

    1 10

    样例输出

    1

    数据范围限制

    【限制】
    1<=a<=b<=10^9。
    30%的数据有b<=10^6。

    思路

    这题目前所知的唯一满分方法为打表(仅限于Pascal,C++会完美无比的爆掉!!!)。我的方法是宽搜,每回从第一位拆起,直到num<10。

    代码

    #include<iostream>
    #include<cstdio>
    #include<cmath>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    int k=0,num1,n,a,b,c,sum=0,d,e,num2,g,i,h;
    void dfs(int num)
    {
        num2=0;
        c=0;
        if(num==7)
            sum++;
        if(num<10)
            return;
        while(num/10!=0)
        {
            h=num%10;
            num=num/10;
            d=num%10;
            e=abs(d-h);
            if(c!=0)
                c=c*10;
            else
                c=1;
            num2=num2+e*c;
        }
        dfs(num2);
    }
    int main()
    { 
        scanf("%d%d",&a,&b);
        if(a>b)
            swap(a,b);
        for(i=a;i<=b+1;i++)
            dfs(i);
        printf("%d",sum);
        return 0;
    }
  • 相关阅读:
    tcp示例
    udp示例
    str 和 bytes
    Xamarin UIProgressView自定义
    个人用Canvas开发HTML5小游戏
    canvas画一个h5小游戏
    用canvas写一个h5小游戏
    react js踩坑之路(一)
    捣腾一下 webpack+gulp 使用姿势~
    关于移动端的适配
  • 原文地址:https://www.cnblogs.com/abcdhh/p/11311368.html
Copyright © 2011-2022 走看看