首页 > 代码库 > UVA471- Magic Numbers
UVA471- Magic Numbers
题目链接
题意:s1/s2=N,s1、s2、N都是各个位数上数字不相同的整数。给定N,求有多少个这样的式子并输出。
思路:其实最大的数只能是9876543210,所以我们只要暴力枚举,枚举过程中判断s1、s2是否符合题目要求。
#include <iostream> #include <cstdio> #include <cstring> #include <cstdlib> #include <algorithm> using namespace std; typedef long long ll; const ll MAXN = 9876543210; ll ans, n; int vis[100]; int judge(ll x) { memset(vis, 0, sizeof(vis)); while (x) { int temp = x % 10; if (vis[temp]) return false; vis[temp] = 1; x /= 10; } return true; } int main() { int cas; scanf("%d", &cas); for (int i = 0; i < cas; i++) { if (i) printf("\n"); scanf("%lld", &n); for (ll i = 1; i <= MAXN; i++) { ans = i * n; if (ans > MAXN) break; if (judge(ans) && judge(i)) printf("%lld / %lld = %lld\n", ans, i, n); } } return 0; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。