uva 10396 - Vampire Numbers(暴力)
来源:互联网 发布:剑三唐门成女捏脸数据 编辑:程序博客网 时间:2024/06/14 21:08
题目链接:uva 10396 - Vampire Numbers
题目大意:输入n,找出为数为n的吸血鬼数字。吸血鬼数字即偶数,并且可以拆分成两个不同为10的倍数的数,相乘为它本身。
解题思路:枚举拆分后的两个数,然后判断。
#include <stdio.h>#include <string.h>#include <set>#include <algorithm>using namespace std;const int N = 6;const int tmp[N] = {0, 1, 10, 100, 1000, 10000};int n, rec[N];set<int> v[N];bool judge(int a, int b) {int c[10], s = a * b;memset(c, 0, sizeof(c));while (a) {c[a%10]++; a /= 10;}while (b) {c[b%10]++; b /= 10;}while (s) {c[s%10]--; s /= 10;}for (int i = 0; i < 10; i++) if (c[i] != 0) return false;return true;}void solve() {int k = n / 2;if (rec[k] == 0) {for (int i = tmp[k]; i < tmp[k+1]; i++) {for (int j = i; j < tmp[k+1]; j++) {if (i % 10 == 0 && j % 10 == 0) continue;if (i % 2 && j % 2) continue;if (judge(i, j)) v[k].insert(i * j);}}}rec[k] = 1;for (set<int>::iterator i = v[k].begin(); i != v[k].end(); i++)printf("%d\n", *i);printf("\n");}int main() {memset(rec, 0, sizeof(rec));while (scanf("%d", &n) == 1) {solve();}return 0;}
1 0
- uva 10396 - Vampire Numbers(暴力)
- UVa 10396 - Vampire Numbers (暴力)
- UVA 10396 - Vampire Numbers(暴力打表)
- UVA - 10396 Vampire Numbers
- UVA - 10396 Vampire Numbers 暴力+打表
- uva 10396——Vampire Numbers
- Vampire Numbers - UVALive 5779 暴力打表
- Vampire Numbers
- joj 1989 Vampire Numbers
- hdoj 4235 Vampire Numbers
- HDU 4325 Vampire Numbers
- UVa10396 - Vampire Numbers
- UVA 11809 Floating-Point Numbers(暴力)
- hdu 4235 Vampire Numbers 模拟+优化
- HDU 4325 Vampire Numbers 打表
- The 70th problem,UVa10396 Vampire Numbers
- Vampire Numbers 数字的合理分解
- UVA - 10396(简单暴力)
- 观察者模式
- linux 下查看机器是cpu是几核
- OPENGL场景坐标变换
- 开博第一篇
- 关于求余和取模的区别以及负数取摸
- uva 10396 - Vampire Numbers(暴力)
- 锚点定位
- unix 中vim的问题
- 51系列中data,idata,xdata,pdata的区别(ZZ)
- 简述C语言中的存储模式(字节顺序)以及程序检测
- delphi中记录数组的使用练习
- Log4j配置实例(log4j.xml)
- Android近期任务列表 Recent Applicatoins 分析 + Android PackageManager
- 《乔布斯传.神一样的传奇》读后感