ACMxxxxx / xxxxx =N问题

Description

Write a program that finds and displays all pairs of 5-digit numbers that between them use the digits 0 through 9 once each, such that the first number divided by the second is equal to an integer N, where . That is,

abcde / fghij =N

where each letter represents a different digit. The first digit of one of the numerals is allowed to be zero.

Input

Each line of the input file consists of a valid integer N. An input of zero is to terminate the program.

Output

Your program have to display ALL qualifying pairs of numerals, sorted by increasing numerator (and, of course, denominator).

Your output should be in the following general form:

xxxxx / xxxxx =N

xxxxx / xxxxx =N

.

.

In case there are no pairs of numerals satisfying the condition, you must write ``There are no solutions for N.". Separate the output for two different values of N by a blank line.

Sample Input

61
62
0

Sample Output

There are no solutions for 61.

79546 / 01283 = 62
94736 / 01528 = 62

解题思路:

题目的大意是给定一个数让我们给出两个数相除可以得到这个数,对于这两个数我们也有一定的要求,其中的被除数要求是一位五位数,除数可以是四位数(这是它的第一位数是0)也可以是五位数。然后这两个数的组成要求用到0-9的所有数。首先我们可以确定我们查找的范围(1234-98765),这时我们查找的是除数,然后对于属于这个范围内的每一个数都求出它的个十百千万位对于每次出现的数字都把它用一个数组标记一下。然后我们将这个数与我们从键盘上输入的数进行相乘一次,得到另一个数,对于这个数我们也要求它不要 大于98765,如果大于就break掉,再求出这个数的个十百千万位,也做一下标记。最后我们判断是否从0-9的每一个数都出现了一次,只有当他们都出现了一次的时候我们找到的这两个数才是符合条件的。

程序代码:

#include <iostream>
#include <cstring>
using namespace std;
int book[10];//标记数组
int main()
{
    int a,b,c,d,e,f,g,h,i,j,w,x,y,s,k=0;
    while(cin>>x&&x)
    {
        if(k==0)
            k=1;
        else
            cout<<endl;
        s=0;
        for(int v=1234;v<=98765;v++)
        {
            memset(book,0,sizeof(book));
            a=v%10;b=v/10%10;c=v/100%10;d=v/1000%10;e=v/10000%10;
            w=x*v;
            if(w>98765)
                break;
            f=w%10;g=w/10%10;h=w/100%10;i=w/1000%10;j=w/10000%10;
            book[a]++;book[b]++;book[c]++;book[d]++;book[e]++;//标记
            book[f]++;book[g]++;book[h]++;book[i]++;book[j]++;//标记
            for(y=0;y<10;y++)
            {
                if(book[y]>1)
                break;
            }
            if(y==10)//此时的0-9的每个数都出现了一次
            {
                s++;
                cout<<j<<i<<h<<g<<f<<" / "<<e<<d<<c<<b<<a<<" = "<<x<<endl;
            }
            else
                continue;
        }
        if(s==0)
        cout<<"There are no solutions for "<<x<<"."<<endl;
    }

    return 0;
}
时间: 2024-10-03 14:02:35

ACMxxxxx / xxxxx =N问题的相关文章

关于iOS10 Xcode8真机测试项目出现的问题 &quot;code signing is required for product type &#39;xxxxx&#39; in SDK &#39;iOS 10.0&quot;..

昨天用真机测试项目出现这样的错误,在网上搜集了一些信息,所以将自己的经验分享出来帮助更多的人. 第一步: 检查你的1和2是否填写正确,如果你是运行别人的项目,BundleIdentifier要和你的Xcode之前填写的要一致,例如,我之前填写的com.baidu.xxxx,但是我真机测试的是com.alibaba.xxx,这样就不一致了,可能会导致错误 第二步: 在Bulid Setting 中找到Singning, 在3处,你可能会看到自己的开发者账号,不要选!!,还有下面 4 Develop

无法执行该操作,因为链接服务器 &quot;xxxxx&quot; 的 OLE DB 访问接口 &quot;SQLNCLI&quot; 无法启动分布式事务

在存储过程中使用事务,并且使用链接服务器时,报类似下面的错误 链接服务器"****"的 OLE DB 访问接口 "SQLNCLI10" 返回了消息 "没有活动事务.".消息 7391,级别 16,状态 2,过程 proc_SyncDiliveryData,第 20 行无法执行该操作,因为链接服务器 "*****r" 的 OLE DB 访问接口 "SQLNCLI10" 无法启动分布式事务. 度娘了很久,找到了

error: conflicting type qualifiers for &#39;xxxxx&#39;

网上的很多解释--很难理解-- 情景描述: 在代码中,写了A\B两个文件,A:是.c文件,B是.h文件和.c文件. 在A中包含了B.h文件. 在B.h文件中声明了A中定义的变量. 这样编译的情况下就会出现error: conflicting type qualifiers for 'XXXX"的编译错误. 解决办法: 将在B.h中声明的外部变量移到B.c中. 这样两者之间就不存在一种相互引用的高度耦合状态. error: conflicting type qualifiers for 'xxxx

[转]MySQL远程连接ERROR 2003 (HY000):Can&#39;t connect to MySQL server on&#39;XXXXX&#39;(111) 的问题

装了个navicat ,然后去连接mysql服务器,一直连不上,一开始以为是防火墙问题,后来防火墙都关闭, iptable服务关闭,还是不行,网上查了下:主要是因为设置了bind_address=127.0.0.1 原文引用: 问题描述: 从一台linux远程连接另一台linux上的MySQL, 出现ERROR 2003 (HY000): Can't connect to MySQL server on 'xxx.xxx.xxx.85'(111)错误. [mysql@vvmvcs0 ~]$ my

使用MSSQL同步&amp;发布数据库快照遇到错误:对路径“xxxxx”访问被拒绝的解决方法

使用MSSQL同步 数据库同步做后后测试:先在同步那台服务器(服务器A)数据库里修改里面数据库,然后再去被同步那台服务器(服务器B)看下数据有没被同步过去 发布数据库快照遇到错误:对路径"xxxxx"访问被拒绝的解决方法 打开SQL Server 配置管理器 -> 在左边栏选择"SQL Server服 务"->在右侧面板中"SQL Server 代理"一行上右击,选择"属性", 在弹出的对话框中选择"内置

[求助] win7 x64 封装 出现 Administrator.xxxxx 的问题

jacky_qu 发表于 2014-9-3 23:34:37 https://www.itsk.com/thread-334907-1-12.html 虚拟机vm10环境封装用msdn 原盘安装系统,安装完使用ctrl+shift+F3 跳过用户名设置进入封装模式,一切优化完成后,使用封装工具在封装时启用Administrator用户. 问题来了,,部署完成后 c:\users 目录下会有 Administrator.xxxxx 目录 而不是administrator 目录 请问这个需要怎么处理

MVC UpdateModel的未能更新XXXXX的类型模型

关于MVC  UpdateModel的未能更新XXXXX的类型模型 的问题: 最近做MVC3的项目,相信很多人都碰到过这个问题,在此记录一下,异常:UpdateModel的未能更新XXXXX的类型模型 下面提供一种解决办法,通过查看EntityValidationErrors解决此异常 查看 EntityValidationErrors 详细信息的解决方法如下: 我们在 EF 的编程中,有时候会遇到这样一个错误: 但是,按照他的提示 “See 'EntityValidationErrors' p

Archive for required library:xxxxx/spring-beans-3.2.4.RELEASE.jar in project XXXXX cannot be read or is not a valid ZIP file

今天在导入maven项目的时候在problems视图中报错: Archive for required library:xxxxx/spring-beans-3.2.4.RELEASE.jar in project XXXXX cannot be read or is not a valid ZIP file 网上的有一下解决方法: 1.close project 然后open project. 2.重新启动eclips. 3.去.m2资源库中删除报错的jar包,然后选中项目:右键->Maven

找不到头文件xxxxx.h file not found

项目里有该文件,但是还是显示找不到.或者是cocopods打开的项目. 原因:.h文件路径找不到.具体找不到的原因有很多种. 1.一般会设置 IOS引用三方framewrok的头文件出现'xxxxx/xxxx.h' file not found问题解决方法 例如:xxxxxx'MAMapKit/MAMapKit.h' file not found 我们平时添加三方framework一般会这么设置. 小伙伴们,如果你遇到了上面说的错就看一下下面这张图是否做了同样的设置. 如果还是不行的话,很有可能