您的位置:首页 > 其它

UVa 11715 - Car

2014-08-19 19:33 85 查看
题目:有一辆车以初速度u做匀加速直线运动,加速度是a,用 t 时间走了s位移,这时速度是v。

现在已知其中的3搁置,求另外两个。

分析:物理题。s = u*t + 0.5*a*t^2;v = u + a*t;v^2 - u^2 = 2*a*s;利用这三个式子求解即可。

说明:都快忘光了╮(╯▽╰)╭。

#include <iostream>  
#include <cstdlib>  
#include <cstdio>
#include <cmath>  
  
using namespace std;  
  
double u, v, a, t, s;  

int main()  
{  
    int n, T = 1;  
    while ( ~scanf("%d",&n) && n ) {  
        
        printf("Case %d:",T ++);     
		if (n == 1) {  
			scanf("%lf%lf%lf",&u,&v,&t);  
	        a = (v - u) / t;  
	        s = u * t + 0.5 * a * t * t;  
	        printf(" %.3lf %.3lf\n",s,a); 
	    } else if (n == 2) {  
	        scanf("%lf%lf%lf",&u,&v,&a);  
	        t = (v - u) / a;  
	        s = u * t + 0.5 * a * t * t;
	        printf(" %.3lf %.3lf\n",s,t); 
	    } else if (n == 3) {  
	        scanf("%lf%lf%lf",&u,&a,&s);  
	        v = sqrt(u * u + 2 * a * s);  
	        t = (v - u) / a;  
	        printf(" %.3lf %.3lf\n",v,t); 
	    } else if (n == 4) {  
	        scanf("%lf%lf%lf",&v,&a,&s); 
	        u = sqrt(v * v - 2 * a * s);  
	        t = (v - u) / a;  
	        printf(" %.3lf %.3lf\n",u,t);
	    }   
    }  

    return 0;  
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: