鱼C论坛

 找回密码
 立即注册
查看: 7612|回复: 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    用了点技巧优化了搜索

  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <windows.h>

  4. int dp[10];
  5. int stk[10];
  6. int sp = 1;

  7. void Print(int num)
  8. {
  9.         printf("success\n");
  10.         printf("%d", num);
  11.         for (int i = 8; i > 0; i -= 2)
  12.         {
  13.                 printf(" %d", stk[i]);
  14.         }
  15.         printf("\n");
  16.         printf(" ");
  17.         for (int i = 7; i > 0; i -= 2)
  18.         {
  19.                 printf(" %d", stk[i]);
  20.         }
  21.         printf("\n");
  22. }

  23. void dfs(int temp, int step, int num)
  24. {
  25.         if (step > 3 && (num - 3) == temp)
  26.         {
  27.                 Print(num);
  28.         }
  29.         for (int i = 1; i <= 9; i++)
  30.         {
  31.                 if (dp[i] == 0 && dp[(i + 3 + temp) % 10] == 0 && (i + 3 + temp) % 10 != 0)
  32.                 {
  33.                         dp[i] = 1;
  34.                         dp[(i + 3 + temp) % 10] = 1;
  35.                         stk[sp++] = i;
  36.                         stk[sp++] = (i + 3 + temp) % 10;
  37.                         int flag = temp;
  38.                         if (i + 3 + temp > 10) temp = 1;
  39.                         else temp = 0;
  40.                         dfs(temp, step + 1, num);
  41.                         temp = flag;
  42.                         dp[i] = 0;
  43.                         dp[(i + 3 + temp) % 10] = 0;
  44.                         sp--;
  45.                         sp--;
  46.                 }
  47.         }
  48. }

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

  52.         memset(dp, 0, sizeof(dp));
  53.         int num = 3;
  54.         dp[num] = 1;
  55.         dfs(0, 0, num);//先假设首位是3、从低位开始构造
  56.         dp[num] = 0;
  57.         num = 4;
  58.         dp[num] = 1;
  59.         dfs(0, 0, num);//假设首位是4、从低位开始构造
  60.         dp[num] = 0;

  61.         //system("pause");
  62.         return 0;
  63. }
复制代码


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-4-20 02:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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