1 2 5三个数相加等于1000,共有多少种情况
时间:2009-08-17 来源:ubuntuer
要求行数。
写了一个三行的
for(i=1;i<500;i++)
for(j=1;j<200;j++)
if((i*2+j*5)<1000)count++;
面试官说可以两行实现,请各位高手指点指点! 这样是我的第一反应: for(i=1;i<500;i++)
for(j=1;j<200&&(i*2+j*5)<1000;j++)
count++; 可惜不对,结果算算任意一个数有1,2构成的个数...,我这里是1,2必须出现一次,1,2可以不出现又有点不同,大家可以推导下,过程类似: 1 --- 0 2 --- 0 3 --- 1 4 --- 1 5 --- 2 不写了(n-1)/2最后的结果 验证下,下面的程序有些许的意淫的技巧,大家千万别拍砖!!!
#include <stdio.h> |