Chinaunix首页 | 论坛 | 博客
  • 博客访问: 8378
  • 博文数量: 2
  • 博客积分: 55
  • 博客等级: 民兵
  • 技术积分: 22
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-20 08:39
文章分类

全部博文(2)

文章存档

2014年(1)

2011年(1)

我的朋友
最近访客

分类: C/C++

2011-10-06 18:51:34

问题:

有n个半圆形金属条c1,c2,c3...cn,半圆直径分别为l1,l2,l3...ln.(如图)问可否将这些金属环首尾相接形成一个大环.                       要求:输入3组直径数据(组内数据之间已用逗号隔开,每组数据间已用分号隔开),判断这3组金属条各自是否可以首尾相接.针对每组数据,如果可以,输出Y,否则输出N.

例:输入 3,3;3,4,5;4,5,10  程序需要输出Y,Y,N(前两组可以相接,第三组不可以.结果间用逗号隔开)

 

思路:最大边之外所有边的和与最大边的比较

简单代码如下;

(以“#”号结束),例如输入数据:1,1,1,1,1,1,5,90;2,4,6,1,8#

  1. #include<iostream>
  2. using namespace std;

  3. int main()
  4. {
  5.     int Diameter[100];
  6.     int num;// the number of diameter
  7.     int i,j;
  8.     int value;
  9.     char temp;
  10.     //int temp;
  11.     int MaxValue,MaxNum,Sum;
  12.     
  13.     
  14.     while(true)//get the input data
  15.     {
  16.         num=0;
  17.         Sum=0;
  18.         
  19.         while(true)
  20.         {
  21.             
  22.             cin>>value;
  23.             cin>>temp;
  24.             //cout<<temp<<endl;
  25.             Diameter[num++] = value;
  26.             
  27.             if(temp == ';' || temp == '#' )
  28.                 break;
  29.         }
  30.         
  31.         MaxValue = Diameter[0];
  32.         MaxNum = 0;
  33.         for(i=1 ; i<num; i++) //get the max of diameter
  34.         {
  35.             if(Diameter[i] > MaxValue)
  36.             {
  37.                 MaxValue = Diameter[i];
  38.                 MaxNum = i;
  39.             }
  40.         }
  41.         //get sum of diameter except the max
  42.         for(i=0; i<num; i++)
  43.         {
  44.             if(i == MaxNum)
  45.                 continue;
  46.             Sum += Diameter[i];    
  47.         }
  48.         if(temp == '#')
  49.         {
  50.             if(MaxValue >= Sum)
  51.                 cout<<"N"<<endl;
  52.             else
  53.                 cout<<"Y"<<endl;
  54.             break;
  55.         }
  56.         if(MaxValue >= Sum)
  57.             cout<<"N,";
  58.         else
  59.             cout<<"Y,";    
  60.     }
  61.     return 0;
  62.     
  63. }

阅读(483) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:K-Means++算法之NBA后卫分类

给主人留下些什么吧!~~