HOJ 1408 盐水的故事
#include<stdio.h>
#include<math.h>
int main()
{
double V,D;
while(scanf("%lf%lf",&V,&D)!=EOF)
{
int num=1;
int second = 0;
while(V>0)
{
V = V - num*D;
if(V<=0.000001)
{
second = second + (int)((V + num*D)/D);
if(V/D>(int)V/D) second++;
break;
}
second = second + num+1;
num++;
printf("此时时间为%d\n",second);
}
printf("%d\n",second);
}
return 0;
}
/*
#include<stdio.h>
#include<math.h>
int main()
{
double V,D,X;
int i, j ;
while(scanf("%lf%lf",&V,&D)!=EOF)
{
X = 0;
int second = 0;
for(i = 1; X < V ; i++){
for(j = 1 ; j<=i && X<V ; j++){
second++;
X = X + D ;
}
}
printf("%d\n",second+i-2);
}
return 0;
}
*/
/*
1.注意double除余double时不能用%符号,%只适用于int整型;
要对double取余需要使用fmod()函数(math.h);
2.浮点数经过多次运算之后会出现误差影响,一般使用floor(0.5+a)来减小误差
3.在进行for运算时,如果跳到某个循环上, 不是判断之后不再进行赋值,
而是这一栏的判断和后面的赋值同时发生。
4. 当你要判断几个用double类型的作计算的结果的时候,注意double会丢失精度
比如在此题中 : 判断 V = V - num*D最终是否小于零时,换成判断是否小于0.00001
判断 V/D 是否大于 (int) (V/D) 时 不能直接判断,要换成
V/D - (int)(V/D) > 0.00001 ;
*/
OJ1412{A}+{B}
#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
using namespace std;
int a[20002];
int main()
{
memset(a,0,sizeof(a));
int n1,n2;
while(scanf("%d%d",&n1,&n2) != EOF)
{
int first = 1;
for(int i = 0 ; i<n1+n2 ; i++)
{
scanf("%d",&a[i]);
}
sort(a,a+n1+n2);
for(int i = 0 ; i<n1+n2;i++){
if(first) first = 0;
else if(first==0&&a[i]!=a[i-1]) printf(" ");
if(i==0) printf("%d",a[0]);
else if(a[i]!=a[i-1])printf("%d",a[i]);
}
printf("\n");
}
return 0;
}