例题7-1 UVA 725 Division除法
来源:互联网 发布:如何用c语言编写贪吃蛇 编辑:程序博客网 时间:2024/06/14 16:42
思路不太好,借鉴一下吧
整体思路:分析可知第一个数肯定是个五位数,第二位要么是五位数,要么是四位数,所以呢,第一个循环直接扫第一个五位数,从10000扫到99999只有当五个数字各不相同,并且通过除法算出第二个数,判断两个数各个数字都不相同即可输出:
#include<cstdio>#include<string.h>using namespace std;const int maxn = 10;int judge(int num){ int cont = 0,flag[maxn] = {0}; while(num != 0){ int a = num % 10; flag[a] = 1; num /= 10; } for (int i = 0; i < maxn; ++i)if (flag[i])cont++; if (cont == 5)return 1; if (cont == 4 && !flag[0])return 2; return 0;}int judge2(int num1,int num2){ int flag[maxn] = {0},cont = 0; while(num1 != 0){ int a = num1 % 10; flag[a]++; num1 /= 10; } while(num2 != 0){ int a = num2 % 10; flag[a]++; num2 /= 10; } for (int i = 0; i < maxn; ++i){ if (flag[i] != 1)cont++; } if (cont == 1 && !flag[0])return 2; if (cont)return 0; if (!cont)return 1; return 0;}int main(){ int N,cont2 = 0,cont = 0; while (scanf("%d",&N) == 1 && N){ cont2++; cont = 0; if (cont2 > 1)printf("\n"); for (int i = 10000; i < 99999; ++i){ if (judge(i) == 1){//1 is 5 2 is 4,0 is no! int num2 = i / N; if (judge2(i,num2) && N * num2 == i){ cont++; if (judge2(i,num2) == 1)printf("%d / %d = %d\n",i,num2,N); else printf("%d / 0%d = %d\n",i,num2,N); } } } if (!cont)printf("There are no solutions for %d.\n",N); } return 0;}
0 0
- 例题7-1 UVA 725 Division除法
- 例题7-1 除法(Division, UVa 725)
- UVa 725 Division(例题7-1)
- 例题7-1 除法UVa 725
- UVA-725除法-Division
- 除法(Division, UVa 725)
- 除法(Division,UVa 725)
- UVA 725 Division 除法
- Division, UVa 725 除法
- 除法(Division, UVa 725)
- UVa 725 DIVISION 除法
- 除法(division,UVa 725)
- 除法(Division,UVa 725)
- UVa 725 Division(除法)
- UVa 725 Division(除法)
- 7-1 除法(Division)
- 例题:除法(UVa 725)
- 紫书章七例题 1——UVA 725 Division
- java垃圾回收
- 如何调用百度的api
- CentOS的Linux操作系统图形界面开启
- [javase学习笔记]-6.7 封装
- mybatis基础与核心类
- 例题7-1 UVA 725 Division除法
- iOS 中的观察者模式, KVO, 通知
- 深(浅)复制与retain
- 短信的自动拦截
- 用React实现点击切换的标签页
- 链表-单向链表-值传递&地址传递
- Java 回调机制
- MongoDB设置访问权限、设置用户
- LeetCode 299:Bulls and Cows