zoukankan      html  css  js  c++  java
  • uva 550 有趣的乘法(dfs)

    题目大意:给三个数A(进制)、B(如*****7的最后一个数字7)、C(*****7*4的后面的因数4)求符合条件下的第一个因数的位数最少

    例子: 179487 * 4 = 717948 (10进制)

    注意到没7*4%10=8,8就是第一个因数的十位数字,进位7*4/10=2;

    第二个数字(8*4+2)%10=4,进位(8*4+2)/10=3;

    ..........

    当一个数字等于B时,且前一个进位上来的值为0时候符合题意;

    AC 代码:

    #include<iostream>
    #include<cstdio>
    using namespace std;
    
    int num,flag;
    int A,B,C;
    
    void dfs(int a,int b,int c,int ret)
    {
        if(b==B && ret==0)
        {
            if(flag)
            {
                return ;
            }
            flag=1;
        }
        int t=b*c+ret;
        b=t%a;
        ret=t/a;
        num++;
        dfs(a,b,c,ret);
    }
    int main()
    {
        while(cin>>A>>B>>C)
        {
            num=0;flag=0;
            dfs(A,B,C,0);
            printf("%d
    ",num);
        }
        return 0;
    }
  • 相关阅读:
    Python 模块,数据类型,元组
    Python条件循环判断
    Python简介
    File对象的基本操作学习
    File对象的基本操作学习
    sublime学习心得
    sublime学习心得
    IO学习
    IO学习
    Emacs学习
  • 原文地址:https://www.cnblogs.com/xiong-/p/3226539.html
Copyright © 2011-2022 走看看