POJ-1426 Find The Multiple
来源:互联网 发布:c语言 string比较 编辑:程序博客网 时间:2024/06/09 18:43
POJ-1426 Find The Multiple
问题描述
Description
Given a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a corresponding m containing no more than 100 decimal digits.
Input
The input file may contain multiple test cases. Each line contains a value of n (1 <= n <= 200). A line containing a zero terminates the input.
Output
For each value of n in the input print a line containing the corresponding value of m. The decimal representation of m must not contain more than 100 digits. If there are multiple solutions for a given value of n, any one of them is acceptable.
Sample Input
26190
Sample Output
10100100100100100100111111111111111111
解决思路
我当时没有反应过来用状压,在那边暴力的打表,还用了最愚蠢的方法,枚举
具体思路如下:
假设前面为的01排列的余为
如果我们在后边添一个
那么余数成为
如果我们在后边添一个
那么余数成为
如果余数为0
那么可以坑定是这个01排列是
代码
/*********************************Author: ToudsourCreated Time: 日 11/ 1 23:08:09 2015File Name:POJ1426.cpp*********************************/#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<cmath>using namespace std;#define MAX 300int DP[MAX][MAX];int Path[MAX][MAX];int Ans[MAX];int main(){ int N; while(scanf("%d",&N)!=EOF&&N) { int Len=0; int Next; memset(DP,-1,sizeof(DP)); DP[1][1%N]=0; Path[1][1%N]=1; for(int i=1;i<=100;i++) { for(int j=1;j<=N;j++) { if(DP[i][j]!=-1) { Next=j*10%N; DP[i+1][Next]=j; Path[i+1][Next]=0; Next=(j*10+1)%N; DP[i+1][Next]=j; Path[i+1][Next]=1; } } if(DP[i][0]!=-1) { Len=i; break; } } Next=0; for(int i=Len;i>=1;i--) { Ans[i]=Path[i][Next]; Next=DP[i][Next]; } for(int i=1;i<=Len;i++) printf("%d",Ans[i]); printf("\n"); } return 0;}
- poj 1426 Find The Multiple
- Poj 1426 Find The Multiple
- POJ 1426 Find the Multiple
- poj 1426Find The Multiple
- POJ 1426 Find The Multiple
- POJ 1426 Find The Multiple
- POJ 1426 Find The Multiple
- POJ 1426 Find The Multiple
- poj - 1426 - Find The Multiple
- POJ 1426 Find The Multiple
- POJ-1426-Find The Multiple
- POJ 1426 Find The Multiple
- POJ 1426 Find The Multiple
- POJ 1426 Find The Multiple
- POJ 1426 Find The Multiple
- POJ 1426 Find The Multiple
- poj 1426 Find The Multiple
- POJ 1426 Find The Multiple
- vncviewer远程登陆mac总是崩溃,提示Rect too large: 1282x900
- System.Web.Caching.Cache类 缓存
- JAVA-p257 T7.17
- Received lower prio advert, forcing new election (KEEP ALIVED)
- select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET
- POJ-1426 Find The Multiple
- 《解析C#类中的构造函数》
- 我的记事本项目之路(四)
- 重新定位svn地址的方法(windows和linux),svn switch(sw)的帮助信息
- GridView嵌套布局
- sql2008常用语句
- ListIterator和Iterator区别第十二篇
- xml约束技术之dtd
- mysql创建视图中使用union报错1064