紫书章七例题 1——UVA 725 Division
2017-03-09 15:47
239 查看
题意,就是给你一个n, 问有没有5位数除五位数整除,商为n。其中五位数的最高位可以为0,然后他们的数字一定是不相同的,即0-9组成两个五位数。
然后思路还蛮好想的,就是将被除数暴力一遍嘛
但是其中感觉还是有个坑点,就是你要判断除数是不是五位数
如果没有的话,vis数组就会超空间了,然后n就会返回一个奇怪的值。
然后思路还蛮好想的,就是将被除数暴力一遍嘛
但是其中感觉还是有个坑点,就是你要判断除数是不是五位数
如果没有的话,vis数组就会超空间了,然后n就会返回一个奇怪的值。
#include <iostream> #include <cstdio> #include <algorithm> #include <cmath> #include <cstring> using namespace std; int main() { // freopen("D:\\input.txt","r",stdin);//这个一定记得要去掉啊啊 int n,temp=0; while(scanf("%d",&n)!=EOF&&n){ int vis[150],flag=0; if(temp!=0) printf("\n"); temp++; for(int i=0;i<=9;i++){ for(int j=0;j<10;j++) for(int k=0;k<10;k++) for(int h=0;h<10;h++) for(int p=0;p<10;p++){ memset(vis,0,sizeof(vis)); int ans=i*10000+j*1000+k*100+h*10+p; ans=ans*n; vis[i]=1,vis[j]=1,vis[k]=1,vis[h]=1,vis[p]=1; if(ans>=100000) continue;//这个不加的话,后面的vis会超空间,会达到800左右 vis[ans/10000]=1,vis[(ans%10000)/1000]=1,vis[(ans%1000)/100]=1,vis[(ans%100)/10]=1,vis[(ans%10)]=1; sort(vis,vis+10); if(vis[0]==1) {flag=1;printf("%d / %d%d%d%d%d = %d\n",ans,i,j,k,h,p,n);} } } if(!flag) printf("There are no solutions for %d.\n",n); } return 0; }
相关文章推荐
- 紫书章七例题 1——UVA 725 Division
- 紫书章七例题 1——UVA 725 Division
- 紫书章七例题 1——UVA 725 Division
- 紫书章七例题 1——UVA 725 Division
- 紫书章七例题 1——UVA 725 Division
- 紫书章七例题 1——UVA 725 Division
- 紫书章七例题 1——UVA 725 Division
- 紫书章五例题六 团队队列 uva 540(queue)
- 紫书章五例题八 命令 UVA 400 (排序+结构体)
- 紫书章五例题9 数据库 UVA 1592 (map+vector)
- 紫书章六例题五 移动盒子 UVA 12657 (数组模拟双向链表)
- 紫书章六例题七 树的层次遍历 UVA 122(链表)
- 紫书章五例题六 团队队列 uva 540(queue)
- 紫书章五例题八 命令 UVA 400 (排序+结构体)
- 紫书章五例题9 数据库 UVA 1592 (map+vector)
- 紫书章六例题五 移动盒子 UVA 12657 (数组模拟双向链表)
- 紫书章六例题七 树的层次遍历 UVA 122(链表)
- 紫书章五例题六 团队队列 uva 540(queue)
- 紫书章五例题八 命令 UVA 400 (排序+结构体)
- 紫书章五例题9 数据库 UVA 1592 (map+vector)