前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C语言作业选做题II-输出一列式子(简单哈希表)

C语言作业选做题II-输出一列式子(简单哈希表)

作者头像
用户7267083
发布2022-12-08 13:52:34
2510
发布2022-12-08 13:52:34
举报
文章被收录于专栏:sukuna的博客

C语言作业选做题II-输出一列式子(简单哈希表)

于2020年6月1日2020年6月1日由Sukuna发布

题目:输入一个数字p然后输出abcde/fghij=p的式子,而且abcdefghij互不相同

Sample Input 32

Sample Output 75168/02349=32

代码:我这个方法比较蠢,看看有没有大佬能提供更好的方法

代码语言:javascript
复制
#include<stdio.h>
#include<math.h>
int main() {
    int x;
    scanf_s("%d", &x);
    int tem,flag=1;
    int HashSet[10] = { 0 };//标记0-9的HashSet
    for (int i = 1000;i < 99999 / x; i++) {
        flag = 1;
        tem = x * i;//先构造a/b=x的式子
        if (i < 10000) {
            HashSet[0] = 1;//不足一万的,那肯定有个0,置0为1
        }
        for (int temp = i; temp > 0;) {
            HashSet[temp % 10 ] = 1;//挨个把哈希表设置好,先遍历除数
            temp /= 10;
        }
        for (int temp = tem; temp > 0;) {
            HashSet[temp % 10] = 1;//再遍历被除数
            temp /= 10;
        }
        for (int j = 0; j < 10; j++) {
            if (!HashSet[j]) {//遍历哈希表,看有无0项
                flag = 0; break;
            }
        }
        for (int k = 0; k < 10; k++) {
            HashSet[k] = 0;//哈希表置0,准备下一次循环
        }
        if (!flag) continue;
        else printf("%5d/%5d=%d\n", tem, i, x);        
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020年6月1日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • C语言作业选做题II-输出一列式子(简单哈希表)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档