uva725division
来源:互联网 发布:淘宝绑定优酷怎么取消 编辑:程序博客网 时间:2024/05/21 18:50
为祖国母亲庆生,这几天不去玩了,多写题!
心路历程这个题吧,主要是我一开始读题的问题,我一开始以为是任意的数字来做,后来发现不是,得是0~9都出现一次,然后就是这么回事,一个一个去枚举,从1234,到50000,但是有个坑一个是输出,最后一行不能有换行,必须是开始的时候换行,还有就是如果i*n>98765的时候应该return false,然后就基本就行了。
#include<cstdio>#include<algorithm>#include<cstring>using namespace std;int num[12] ,vis[12];bool check(int n , int m){ memset(vis , 0 , sizeof(vis)); memset(num , 0 , sizeof(num)); int ans = 0; int x = n; if(n > 98765) return 0; while(n > 0){ if(vis[n % 10]) return 0; else vis[n % 10] = 1,num[n % 10] = 1; n /= 10; } while( m > 0){ if(vis[m % 10]) return 0; else vis[m % 10] = 1,num[m % 10] = 1; m /= 10; } if(x < 98765) num[0] = 1; for(int i = 0 ; i < 10 ; i++){ ans += num[i]; } if(m == 1283) printf("ans = %d",ans); return ans == 10;}int main(){ int n , cnt = 0; while(scanf("%d",&n)&&n){ if(n == 0) break; if(cnt++) printf("\n"); int flag = 1; for(int i = 1234 ; i <= 50000 ; i++){ if(check(i * n , i)){ if(i<=9876) printf("%05d / 0%04d = %d\n",i*n,i,n); else printf("%05d / %05d = %d\n",i*n,i,n); flag = 0; } } if(flag) //printf("There are no solutions for %d.\n",n); printf("There are no solutions for %d.\n",n); //printf("\n"); } return 0;}
0 0
- uva725division
- UVA725Division
- UVA725Division(紫书例题第七章1)
- Tiling
- hdu5114 Collision(一元同余方程)
- 交换两个数字
- C语言中的大数相乘问题
- 基于ssh框架的教务管理系统
- uva725division
- JAVA-线程/线程锁
- 每日练习0930
- bash: use: command not found (error occurred this command run in Terminal: # use mysql )
- Opencv2.4.9+VS2010环境搭建问题
- hdu5904 简单dp
- typecho-出现500server error页面怎么解决?
- Win7 + Ubuntu16.04 双系统安装
- [50Tproject-1] 利润