由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 请教一个写程序的问题
相关主题
1 11 21 1211 sequence的代码一道google电面题,估计挂了。。。
Math Interview Question Help一个N个数的int数组如何找到3个majority的数?
以前见过的一道初中(或小学)数学题, 没有想出来...C++ Q22: ostream
工作refer Staff Software EngineerC++ Q60 calling virtual function in constructor (JPMorgan)
vm onsite 面经弱问一个c++编程题
发个L家面经,攒rpc++ class definition
报点面经为什么我在array里用IsOdd 总出错?
C: what is the output?【为什么我写的reverse string总出错】
相关话题的讨论汇总
话题: 36话题: kids话题: repetition话题: int话题: ages
进入JobHunting版参与讨论
1 (共1页)
m*******i
发帖数: 370
1
A man has 3 kids. The product of the ages of the three kids is 36. How will
you systematically list out all of the possible combination for the ages of
the 3 kids without repetition?
这个在loop里面怎么remove其中的repetition呢?
p*****e
发帖数: 1611
2
for (int i = 1;i <=36; i++)
for (int j = i; j <=36; j++)
for (k = j; k <= 36; k++)
大致这个框架,中间可以优化的。

will
of

【在 m*******i 的大作中提到】
: A man has 3 kids. The product of the ages of the three kids is 36. How will
: you systematically list out all of the possible combination for the ages of
: the 3 kids without repetition?
: 这个在loop里面怎么remove其中的repetition呢?

p*****e
发帖数: 1611
3
或者两重循环,求第三个,然后判断要>=j
写法挺多的,关键是要排序搜

【在 p*****e 的大作中提到】
: for (int i = 1;i <=36; i++)
: for (int j = i; j <=36; j++)
: for (k = j; k <= 36; k++)
: 大致这个框架,中间可以优化的。
:
: will
: of

m*******i
发帖数: 370
4
这样,很多repetion, 比如 1 9 4 和 4 9 1

【在 p*****e 的大作中提到】
: for (int i = 1;i <=36; i++)
: for (int j = i; j <=36; j++)
: for (k = j; k <= 36; k++)
: 大致这个框架,中间可以优化的。
:
: will
: of

p*****e
发帖数: 1611
5
不会,k一定要比j大

【在 m*******i 的大作中提到】
: 这样,很多repetion, 比如 1 9 4 和 4 9 1
s******t
发帖数: 2374
6
可以因式分解么?
我刚才的帖子没看懂题目。我删掉了
s******t
发帖数: 2374
7
36 ==
2 2 3 3 然后可以组合来组合去的
1可以作为特殊情况考虑,还可以有两个1
p*****e
发帖数: 1611
8
这题可以扩展成n个孩子的乘积是m
写个递归就可以,同样注意要排序搜

【在 s******t 的大作中提到】
: 36 ==
: 2 2 3 3 然后可以组合来组合去的
: 1可以作为特殊情况考虑,还可以有两个1

m*******i
发帖数: 370
9
我理解错了,多谢!

【在 p*****e 的大作中提到】
: 不会,k一定要比j大
c*******d
发帖数: 255
10
36 = 2^2*3^2
两个2分给三个人,有C(4,2)种分法
C(4,2)*C(4,2) = 36种情况
所以程序可以这么写:
#include
#include
using namespace std;
int main()
{
unsigned int k1, k2, k3, s1, s2, s3, n1, n2, n3;
unsigned int count = 0;
unsigned int i, j, p, q;
for(i=1;i<=4;i++) {
for(j=i+1;j<=4; j++) {
k1 = i-1;
k2 = j-(i+1);
k3 = 4-j;
for(p=1; p<=4; p++) {
for(q=p+1; q<=4; q++) {
s1 = p-1;
s2 = q-(p+1);
s3 = 4-q;
n1 = pow(2,k1)*pow(3,s1

【在 m*******i 的大作中提到】
: A man has 3 kids. The product of the ages of the three kids is 36. How will
: you systematically list out all of the possible combination for the ages of
: the 3 kids without repetition?
: 这个在loop里面怎么remove其中的repetition呢?

c*******d
发帖数: 255
11
这个解法是假定给了这家三个小孩的名字,然后猜每个名字对应的年龄是多少
如果问题是“列出这家三个小孩,老大,老二,老三年龄分别是多少?”
则上述解法有很多重复。我一下还没想到怎样去除其中的重复。

【在 c*******d 的大作中提到】
: 36 = 2^2*3^2
: 两个2分给三个人,有C(4,2)种分法
: C(4,2)*C(4,2) = 36种情况
: 所以程序可以这么写:
: #include
: #include
: using namespace std;
: int main()
: {
: unsigned int k1, k2, k3, s1, s2, s3, n1, n2, n3;

s******t
发帖数: 2374
12
我知道为啥。我看晕了。

【在 c*******d 的大作中提到】
: 36 = 2^2*3^2
: 两个2分给三个人,有C(4,2)种分法
: C(4,2)*C(4,2) = 36种情况
: 所以程序可以这么写:
: #include
: #include
: using namespace std;
: int main()
: {
: unsigned int k1, k2, k3, s1, s2, s3, n1, n2, n3;

1 (共1页)
进入JobHunting版参与讨论
相关主题
【为什么我写的reverse string总出错】vm onsite 面经
【c++里override输出<<总出错】发个L家面经,攒rp
这个C++程序的运行结果是什么报点面经
C++ Q80: What is the output of the following code?C: what is the output?
1 11 21 1211 sequence的代码一道google电面题,估计挂了。。。
Math Interview Question Help一个N个数的int数组如何找到3个majority的数?
以前见过的一道初中(或小学)数学题, 没有想出来...C++ Q22: ostream
工作refer Staff Software EngineerC++ Q60 calling virtual function in constructor (JPMorgan)
相关话题的讨论汇总
话题: 36话题: kids话题: repetition话题: int话题: ages