[bo][un]中学者[/un] 在 2008-10-2 20:46 的发言:[/bo]
我惭愧自己一直停留在初级群
现在QQ也不用了....潜心学习
我惭愧自己一直停留在初级群
现在QQ也不用了....潜心学习
在CF吧
程序代码:#include <stdio.h>
int main(void)
{
int k,n;
while (scanf("%d%d",&n,&k),!(n==0&&k==0))//数据输入
{
double tax = 0.0;
if( n-k <= 0 ); //使用分段函数方式计算
else if ( n-k-500 < 0 )
tax = (n-k)*0.05;
else if( n-k-2000 < 0 )
tax = 500*0.05 + (n-k-500)*0.1;
else if ( n-k-5000 < 0)
tax = 500*0.05 + (2000-500)*0.1 + (-2000+n-k)*0.15;
else if ( n-k-20000 < 0)
tax = 500*0.05 + (2000-500)*0.1 + (5000-2000)*0.15
+(n-k-5000)*0.2;
else if ( n-k-40000 < 0)
tax = 500*0.05 + (2000-500)*0.1 + (5000-2000)*0.15
+(20000-5000)*0.2 +(k-n-20000)*0.25;
else if ( n-k-60000 < 0)
tax = 500*0.05 + (2000-500)*0.1 + (5000-2000)*0.15
+(20000-5000)*0.2+(40000-20000)*0.25+(n-k-40000)*0.3;
else if ( n-k-80000 < 0)
tax = 500*0.05 + (2000-500)*0.1 + (5000-2000)*0.15
+(20000-5000)*0.2+(40000-20000)*0.25+(60000-40000)*0.3
+(n-k-60000)*0.35;
else if ( n-k-100000 < 0)
tax = 500*0.05 + (2000-500)*0.1 + (5000-2000)*0.15
+(20000-5000)*0.2+(40000-20000)*0.25+(60000-40000)*0.3
+(80000-60000)*0.35+(n-k-80000)*0.4;
else
tax = 500*0.05 + (2000-500)*0.1 + (5000-2000)*0.15
+(20000-5000)*0.2+(40000-20000)*0.25+(60000-40000)*0.3
+(80000-60000)*0.35+(100000-80000)*0.4+(n-k-100000)*0.45;
printf("%.2lf\n",tax); //输出计算结果
}
return 0;
}首先要声明,帖此代码并不是给大家取笑,而事实上,面对这个题目,
程序代码:// http:// <stdio.h>
int main()
{
int n,k,t;
unsigned nBase[]={0,500,2000,5000,20000,
40000,60000,80000,100000,-1};
while(scanf("%d%d", &n, &k), n>0||k>0) //数据输入
{
double sum = 0;
for(n-=k,t=0; (unsigned)n>nBase[t]; ++t)
{
sum += n - nBase[t];
}
printf("%.2lf\n", sum/20.0); //输出计算结果
}
return 0;
}