UVa 11001

来源:互联网 发布:复数矩阵的qr分解例题 编辑:程序博客网 时间:2024/05/16 02:35

题目:有Vtotal体积的材料,分成n分,做成n个相同的盘子,总半径为n*sqrt(Vtotal/n - V0),

             V0是一个给定的限制,Vtotal/n < V0时解为0,输出总半径最大的n的值。

分析:数学题。直接配方法求最大值,n = Vt / (2V0),关键是无最大值和解不唯一的判断。

            解不唯一时:n的小数部分是0.5;

            无解时情况:Vt <= V0;

说明:Vt <= 2*V0时结果是1,(⊙v⊙)。

#include <stdio.h>#include <stdlib.h>int main(){double Vt, V0;while (~scanf("%lf%lf",&Vt,&V0) && Vt+V0) {if (Vt <= V0) {printf("0\n");}else if (Vt <= 2*V0) {printf("1\n");}else {if (0.5*Vt/V0 - (int)(0.5*Vt/V0) == 0.5) {printf("0\n");}else if (0.5*Vt/V0 - (int)(0.5*Vt/V0) < 0.5){printf("%d\n",(int)(0.5*Vt/V0));}else {printf("%d\n",(int)(0.5*Vt/V0)+1);}}}return 0;}


原创粉丝点击