if((a+b)%3==0)n++;
printf("%d",n);
}
数学解法:
设另两条边的长度分别为x、y,且x>y。
则由x+y>60,x+y必须是3的倍数,得:
x=32:
y=31,共1个解;
x=33:
y=30,共1个解;
x=34:
y=29,32,共2个解;
...
x=59:
y=4,7...,58,共19个解。
将上述解数相加,即得总解数。
EXCEL解法
(1)在第一行输入较长边的可能值31-59,在第一列输入最短边的可能值4-58。
如图9所示。
(2)在B2输入公式:
=IF(AND(B$1>$A2,B$1+$A2>60,MOD(B$1+$A2,3)=0),1,"")公式说明:
AND包括三个条件:
B$1>$A2:
表示较长边大于最短边;
B$1+$A2>60:
表示两边之和大于最长边;
MOD(B$1+$A2,3)=0:
表示周长是3的倍数。
(3)选择B2,向右拖填充柄至AD2;
(4)选择B2至AD2,向下拖填充柄至第56行;
(5)在AE2输入公式:
=SUM(B2:
AD56)
此时AE2显示271,即本题答案。
4、正整数A、B满足:
A
求A+B取最小值时B的值。
解法一:
(1)设初始解:
A=1,B=2698,和s=A+B=2699
(2)因为A2<2698,故A<52。
对A在[2,51]上穷举,如果A为2698的约数且s直到A穷举完毕,即得到最小值s及对应的B。
main()/*参考答案:
71*/
{ints=2699,k,B=2698;/*设B=2698时和s有最小值2699*/
for(k=1349;k>51;k--)/*51为2698开方取整*/
if(2698%k==0)
if(2698/k+k
printf("%d",B);
}
解法二:
依据数学定理:
AB为定值时,A与B越接近,A+B越小。
因为A=sqrt(2698),即B>=52。
因此可对B在[52,2698]上从左向右搜索,一旦B整除2698,即停止搜索。
main()