3 条题解

  • 0
    @ 2024-12-24 10:16:08
    #include<bits/stdc++.h>
    using namespace std;
    
    int main()
    {
    	int t;
    	cin>>t;
    	double L,D,R;
    	double length;
    	int sum;
    	int yushu;
    	while(t--)
    	{
    		sum = 0;
    		cin>>L>>D>>R;
    		//先进行判断
    		if(D>=2*R)
    		{
    			cout<<"impossible"<<endl;
    			continue;
    		}
    		length = 2*sqrt(pow(R,2)-pow(D/2,2));
    		yushu = (int)L % (int)length;
    		sum = L/length;
    		if(yushu>=0)
    		{
    			sum++;
    		}
    		cout<<sum<<endl;
    	}
    }
    
    • 0
      @ 2024-12-11 21:21:51

      #include <stdio.h> #include<math.h> int main() { int t,k; scanf("%d", &t); while (t--) { double l,d,r; scanf("%lf%lf%lf",&l,&d,&r); if(dd>(rr-1)4){ printf("impossible\n"); } else{ double m=sqrt(4rr-dd); double ans=0; for( k=1;k<l;k++){ ans+=m; if(ans>=l){ break; } } printf("%d\n",k); }

      } return 0;

      }

      • 0
        @ 2023-10-13 13:43:58
        #include <stdio.h>
        #include<math.h>
        int main(){
            int T;
            scanf("%d",&T);
            while(T--){
                int l,w,r;
                int t;double f;
                scanf("%d%d%d",&l,&w,&r);
                t=f=l/(sqrt(r*r-w*w/4.0)*2);//勾股定理
        /*t,f用于判断是否有小数,有则进一*/
                double x=sqrt(r*r-w*w/4.0);//间距
                if(t<0||x<1)//距离不能小于1m
                printf("impossible\n");
                else
                {
                if(t>=0 &&f==t)//判断是否有小数部分
                {
                printf("%d\n",t);//无,直接输出
                }
                else if(t>=0&&f!= t)
                {
                printf("%d\n",t+1);//有,加一输出
                }
            }
        }
            return 0;
        }
        
        • 1

        信息

        ID
        182
        时间
        3000ms
        内存
        128MiB
        难度
        8
        标签
        (无)
        递交数
        906
        已通过
        142
        上传者