UVa 471 - Magic Numbers
2016-07-19 11:06
274 查看
題目:已知一個數字N,構造出s1與s2使得s1 / s2 = N,其中s1和s2各自數位上的數字不同。
分析:搜索,枚舉。直接枚舉N的倍數判斷是否合法即可(數據中沒有1╮(╯▽╰)╭)。
說明:╮(╯▽╰)╭又是好久沒刷題了。
#include <cstdio>
int bits_count[11];
int check(long long value)
{
for (int i = 0; i <= 9; ++ i) {
bits_count[i] = 0;
}
while (value) {
if (bits_count[value%10LL]) {
return 0;
}
bits_count[value%10LL] ++;
value /= 10LL;
}
return 1;
}
int main()
{
int T, length;
long long base;
scanf("%d",&T);
while (T --) {
scanf("%lld",&base);
for (long long i = 1; i <= 9876543210; ++ i) {
if (base*i > 9876543210) {
break;
}
if (check(base*i) && check(i)) {
printf("%lld / %lld = %lld\n",base*i,i,base);
}
}
if (T) puts("");
}
return 0;
}
分析:搜索,枚舉。直接枚舉N的倍數判斷是否合法即可(數據中沒有1╮(╯▽╰)╭)。
說明:╮(╯▽╰)╭又是好久沒刷題了。
#include <cstdio>
int bits_count[11];
int check(long long value)
{
for (int i = 0; i <= 9; ++ i) {
bits_count[i] = 0;
}
while (value) {
if (bits_count[value%10LL]) {
return 0;
}
bits_count[value%10LL] ++;
value /= 10LL;
}
return 1;
}
int main()
{
int T, length;
long long base;
scanf("%d",&T);
while (T --) {
scanf("%lld",&base);
for (long long i = 1; i <= 9876543210; ++ i) {
if (base*i > 9876543210) {
break;
}
if (check(base*i) && check(i)) {
printf("%lld / %lld = %lld\n",base*i,i,base);
}
}
if (T) puts("");
}
return 0;
}
相关文章推荐
- PAT1010 一元多项式求导
- wi10优化
- Longest Substring Without Repeating Characters
- Qt基于FFmpeg播放本地 H.264(H264)文件
- adapter如何finish activity
- Android studio value 2 (com.android.dex.DexException:资源重复引用或者加载问题)
- pthread_mutex_t
- 在 Linux 上使用 VirtualBox 的命令行管理界面
- 大理石在哪?(Where is the Marble?,UVa 10474)
- 在 Linux 上使用 VirtualBox 的命令行管理界面
- dTree组件的学习
- Disruptor 详解
- C语言putenv()函数:改变或增加环境变量
- Java 的JSON、XML转换方法——目录索引
- org.apache.log4j.Logger 详解
- java 抽象类和接口区别
- 安卓软键盘隐藏
- 高效调用lua函数
- 设置Grails中的domain的字段默认是否允许为空
- Kafka0.8.2.1删除topic逻辑