鱼C论坛

 找回密码
 立即注册
查看: 8882|回复: 45

[技术交流] (领鱼币)微软的题目,1-9不能重复

[复制链接]
发表于 2016-8-23 12:31:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
群里发出来的


QQ图片20160823122410.jpg

大家都来积极参与吧,能实现就行,不管什么办法,一起学习

我也写了下(用的递归),代码回复就有了

代码:
游客,如果您要查看本帖隐藏内容请回复


结果(我算出是2个,不知道对没)
游客,如果您要查看本帖隐藏内容请回复
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-8-23 12:47:07 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-23 13:50:25 | 显示全部楼层

回帖奖励 +3 鱼币

就是只有这两个答案,我不会C,用python试了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-23 13:55:10 From FishC Mobile | 显示全部楼层
冬雪雪冬 发表于 2016-8-23 13:50
就是只有这两个答案,我不会C,用python试了。

跑多久出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-23 14:00:55 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-23 14:04:08 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-23 14:06:09 | 显示全部楼层

python是解释型语言,速度比C慢很多。不过写程序倒是比C容易且快捷。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-23 14:12:11 | 显示全部楼层
冬雪雪冬 发表于 2016-8-23 14:06
python是解释型语言,速度比C慢很多。不过写程序倒是比C容易且快捷。

我这用C跑了5秒,我估计是我算法问题,用递归慢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-23 14:15:17 | 显示全部楼层
迷雾少年 发表于 2016-8-23 14:12
我这用C跑了5秒,我估计是我算法问题,用递归慢

是的,递归是很耗时的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-23 14:35:48 | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-8-23 17:15:54 | 显示全部楼层
本帖最后由 lx_Zz 于 2016-8-23 17:18 编辑

0.009s    用了点技巧优化了搜索
#include <stdio.h>
#include <string.h>
#include <windows.h>

int dp[10];
int stk[10];
int sp = 1;

void Print(int num)
{
        printf("success\n");
        printf("%d", num);
        for (int i = 8; i > 0; i -= 2)
        {
                printf(" %d", stk[i]);
        }
        printf("\n");
        printf(" ");
        for (int i = 7; i > 0; i -= 2)
        {
                printf(" %d", stk[i]);
        }
        printf("\n");
}

void dfs(int temp, int step, int num)
{
        if (step > 3 && (num - 3) == temp)
        {
                Print(num);
        }
        for (int i = 1; i <= 9; i++)
        {
                if (dp[i] == 0 && dp[(i + 3 + temp) % 10] == 0 && (i + 3 + temp) % 10 != 0)
                {
                        dp[i] = 1;
                        dp[(i + 3 + temp) % 10] = 1;
                        stk[sp++] = i;
                        stk[sp++] = (i + 3 + temp) % 10;
                        int flag = temp;
                        if (i + 3 + temp > 10) temp = 1;
                        else temp = 0;
                        dfs(temp, step + 1, num);
                        temp = flag;
                        dp[i] = 0;
                        dp[(i + 3 + temp) % 10] = 0;
                        sp--;
                        sp--;
                }
        }
}

int main()
{
        //很明显第一个个数的最高位不是3就是4

        memset(dp, 0, sizeof(dp));
        int num = 3;
        dp[num] = 1;
        dfs(0, 0, num);//先假设首位是3、从低位开始构造
        dp[num] = 0;
        num = 4;
        dp[num] = 1;
        dfs(0, 0, num);//假设首位是4、从低位开始构造
        dp[num] = 0;

        //system("pause");
        return 0;
}

1PM2Rga1ULXLuhqFCg0h0w==.png

点评

我很赞同!: 5.0
我很赞同!: 5
很强势  发表于 2016-8-23 17:21
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 3 反对 0

使用道具 举报

发表于 2016-8-24 02:18:01 | 显示全部楼层
仙仙是学碴
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-24 08:24:44 From FishC Mobile | 显示全部楼层
666
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-8-24 09:19:49 | 显示全部楼层
学习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-24 11:33:40 | 显示全部楼层
学习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-24 21:14:41 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-8-25 02:48:53 From FishC Mobile | 显示全部楼层
没看懂是干什么的啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-25 02:49:57 From FishC Mobile | 显示全部楼层
看了你运行的懂了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-25 14:59:26 | 显示全部楼层
好厉害的样子·~~~~学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-25 15:49:14 | 显示全部楼层
学习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-26 01:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表