[三星]编程求组合
-
- 帖子: 3
- 注册时间: 2008-06-06 9:16
Re: [三星]编程求组合
代码: 全选
python -c "import itertools;print [l for l in itertools.permutations(range(10)) if (int(''.join(str (j) for j in l[:3]))+int(''.join(str (j) for j in l[3:6]))==int(''.join(str (j) for j in l[6:])))]"
代码: 全选
python -c "import itertools;[l for l in itertools.permutations(range(10)) if ((l[0]+l[3]-l[7])*100+(l[1]+l[4]-l[8])*10+l[2]+l[5]-l[9]==l[6]*1000)]"
代码: 全选
python -c "import itertools,pprint;pprint.pprint([l for l in itertools.permutations(range(10)) if ((l[0]+l[3]-l[7])*100+(l[1]+l[4]-l[8])*10+l[2]+l[5]-l[9]==l[6]*1000)])"
成功的写成了3个benchmark程序
- oneleaf
- 论坛管理员
- 帖子: 10441
- 注册时间: 2005-03-27 0:06
- 系统: Ubuntu 12.04
Re: [三星]编程求组合
抓到了个潜水艇,呵呵。有其它语言的实现没?
- 月下叹逍遥
- 论坛版主
- 帖子: 33994
- 注册时间: 2010-10-07 14:23
- 系统: Archdows10
- 来自: 某系某星某洲某国某省某市
- 联系:
- oneleaf
- 论坛管理员
- 帖子: 10441
- 注册时间: 2005-03-27 0:06
- 系统: Ubuntu 12.04
Re: [三星]编程求组合
你运行下二楼的代码就知道了。
- 月下叹逍遥
- 论坛版主
- 帖子: 33994
- 注册时间: 2010-10-07 14:23
- 系统: Archdows10
- 来自: 某系某星某洲某国某省某市
- 联系:
Re: [三星]编程求组合
回去试试,好久没碰码了。一行的py看着挺蛋疼的。oneleaf 写了:你运行下二楼的代码就知道了。
Sent from my SK17i using Tapatalk 2
浮生七十今三十,从此凄惶未可知
-
- 帖子: 2
- 注册时间: 2013-09-29 1:16
- 系统: ubuntu13.04
Re: [三星]编程求组合
这个语言很强大啊,很简洁,就是我不懂啊,这个语言主要用在哪里啊?
- 月下叹逍遥
- 论坛版主
- 帖子: 33994
- 注册时间: 2010-10-07 14:23
- 系统: Archdows10
- 来自: 某系某星某洲某国某省某市
- 联系:
Re: [三星]编程求组合
依旧没看懂题目,把输出拆解一下输出出来应该就可以了吧?
代码: 全选
for x in range(100,999):
for y in range(100,999):
z=x+y
if z>999:
print(x,"+",y,"=",z)
浮生七十今三十,从此凄惶未可知
- oneleaf
- 论坛管理员
- 帖子: 10441
- 注册时间: 2005-03-27 0:06
- 系统: Ubuntu 12.04
Re: [三星]编程求组合
就是将0-9 十个数字填入到方框里面,使其满足等式: 口口口 + 口口口 = 口口口口月下叹逍遥 写了:依旧没看懂题目,把输出拆解一下输出出来应该就可以了吧?代码: 全选
for x in range(100,999): for y in range(100,999): z=x+y if z>999: print(x,"+",y,"=",z)
-
- 帖子: 47
- 注册时间: 2013-11-02 21:09
- 系统: Ubuntu
Re: [三星]编程求组合
C++版本
代码: 全选
#include <stdio.h>
bool used[10];
int digit[10];
void dfs(int n)
{
if (n == 10) {
int a = digit[0] * 100 + digit[1] * 10 + digit[2];
int b = digit[3] * 100 + digit[4] * 10 + digit[5];
int c = digit[6] * 1000 + digit[7] * 100 + digit[8] * 10 + digit[9];
if (a + b == c) {
printf("%03d + %03d = %04d\n", a, b, c);
}
return;
}
for (int i = 0; i < 10; i++) {
if (used[i]) {
continue;
}
used[i] = true;
digit[n] = i;
dfs(n + 1);
used[i] = false;
}
}
int main()
{
dfs(0);
return 0;
}
- cjxgm
- 帖子: 1952
- 注册时间: 2010-04-23 20:40
- 系统: Arch Linux
- 来自: 浙江·杭州
- 联系:
Re: [三星]编程求组合
这不是C++,这是Cmaxiaojun0 写了:C++版本代码: 全选
#include <stdio.h> bool used[10]; int digit[10]; void dfs(int n) { if (n == 10) { int a = digit[0] * 100 + digit[1] * 10 + digit[2]; int b = digit[3] * 100 + digit[4] * 10 + digit[5]; int c = digit[6] * 1000 + digit[7] * 100 + digit[8] * 10 + digit[9]; if (a + b == c) { printf("%03d + %03d = %04d\n", a, b, c); } return; } for (int i = 0; i < 10; i++) { if (used[i]) { continue; } used[i] = true; digit[n] = i; dfs(n + 1); used[i] = false; } } int main() { dfs(0); return 0; }
-
- 帖子: 47
- 注册时间: 2013-11-02 21:09
- 系统: Ubuntu
Re: [三星]编程求组合
cjxgm 写了:这不是C++,这是C
代码: 全选
$ gcc test.c
test.c:3:1: 错误: 未知的类型名‘bool’
test.c: 在函数‘dfs’中:
test.c:18:4: 错误: 只允许在 C99 模式下使用‘for’循环初始化声明
test.c:18:4: 附注: 使用 -std=c99 或 -std=gnu99 来编译您的代码
test.c:22:17: 错误: ‘true’未声明(在此函数内第一次使用)
test.c:22:17: 附注: 每个未声明的标识符在其出现的函数内只报告一次
test.c:25:17: 错误: ‘false’未声明(在此函数内第一次使用)
$ gcc -std=c99 test.c
test.c:3:1: 错误: 未知的类型名‘bool’
test.c: 在函数‘dfs’中:
test.c:22:17: 错误: ‘true’未声明(在此函数内第一次使用)
test.c:22:17: 附注: 每个未声明的标识符在其出现的函数内只报告一次
test.c:25:17: 错误: ‘false’未声明(在此函数内第一次使用)
$ gcc -std=gnu99 test.c
test.c:3:1: 错误: 未知的类型名‘bool’
test.c: 在函数‘dfs’中:
test.c:22:17: 错误: ‘true’未声明(在此函数内第一次使用)
test.c:22:17: 附注: 每个未声明的标识符在其出现的函数内只报告一次
test.c:25:17: 错误: ‘false’未声明(在此函数内第一次使用)
$ g++ test.c
- tangmumao_wefls
- 帖子: 2899
- 注册时间: 2011-02-11 14:09
- 系统: AnthonOS Next
- 来自: 在那不遥远的地方
- 联系:
Re: [三星]编程求组合
c是没有bool的吧,至少我参加NOIP是没有的,直接用unsigned int
Sent from my MI 2 using Xparent Skyblue Tapatalk 2
Sent from my MI 2 using Xparent Skyblue Tapatalk 2
-
- 帖子: 47
- 注册时间: 2013-11-02 21:09
- 系统: Ubuntu
Re: [三星]编程求组合
用stdbool.h就可以有~tangmumao_wefls 写了:c是没有bool的吧,至少我参加NOIP是没有的,直接用unsigned int
http://pubs.opengroup.org/onlinepubs/00 ... ool.h.html
- tangmumao_wefls
- 帖子: 2899
- 注册时间: 2011-02-11 14:09
- 系统: AnthonOS Next
- 来自: 在那不遥远的地方
- 联系:
Re: [三星]编程求组合
反正全国计算机奥林匹克联赛(NOIP)是不让用的maxiaojun0 写了:用stdbool.h就可以有~tangmumao_wefls 写了:c是没有bool的吧,至少我参加NOIP是没有的,直接用unsigned int
http://pubs.opengroup.org/onlinepubs/00 ... ool.h.html
Sent from my MI 2 using Xparent Skyblue Tapatalk 2