HZAU 1099 Die Die Die!(分类讨论水题)

本文通过一个幽默的方式警告玩家注意《Overwatch》游戏可能带来的过度沉迷风险,并在末尾巧妙地转换为一道计算机编程题,要求计算游戏中角色Reaper使用技能“死亡绽放”时的有效攻击范围。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1099: Die Die Die!

Time Limit: 1 Sec   Memory Limit: 128 MB
Submit: 3514   Solved: 483
[ Submit][ Status][ Web Board]

Description

do not play Overwatch
do not not play Overwatch
do not play Overwatch
do not not play Overwatch
the game will consume your soul
and drag you to the depth of hell
I'm not f**king joking around bro
I woke up at nine pm dawg
this game is not f**king joke bro
I stayed up till five pm dawg
this is a f**king problem dawg
what the f**k did Blizzard do to make it so addictive
I never play no Diablo
I never play no World of Warcraft
I never f**k with no Hearthstone
who give a f**k about the Heroes of the Storm
and you god damn bitches sweet ass 
that ya boy never put his dick anywhere near no Starcraft
but Overwatch
Overwatch
What the f**k's in Overwatch!
But you are still playing Overwatch ~2333333333,and now you control a character who‘s name is Reaper. The most powerful skill of him is called Death Blossom, when he use this skill, Reaper will shot around to kill his enemy. Here is the question, you want to know the area of the skill that Reaper can kill his enemy. We assume that each time when Reaper using this skill, he will never move, so we can suppose that he is a point, and the bullets which he shots will fly L meters, because he is so fast that he can shot 360 degrees around him. Now, please tell me the area of his skill. To make it more interesting, you must just print n bits after decimal point.

Input

The input file will contain several tests,it will end with EOF, each test contain two integers L and n .(0<=L<=25,0<=n<=6)

Output

Your answer .Please notice that when your answer is 0, as you can see 0 is the same to 0.0 or 0.00 or 0.000 ……, so you should just print 0. And when the n is 0, you should not print decimal point.

Sample Input

1 0
1 1
1 4

Sample Output

3
3.1
3.1415 


题意:

求圆的面积,并控制小数点后输出位数。

因为.nf没办法实时控制那个n,所以只能分类讨论n的值。并且这题要注意.f格式的自动四舍五入问题,所以要对末位的更小的那一位进行是否<5的特判。

注:以后坚决不会再用fixed<<setprecision(n)了...事实证明C++里面的控制格式输出符根本毫无卵用...还有那个hex之类的...都不要用了,没用的。


代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<queue>
#include<stack>
#include<cstdlib>
#include<iomanip>
#define PI 3.14159265358979
using namespace std;
 
 
int main()
{
    int l,n;
    while(scanf("%d%d",&l,&n)!=EOF)
    {
        if(l==0)
        {
            cout<<"0"<<endl;
            continue;   
        }
        double area=PI*l*l;
        int length=area/10;
         long long num=area*pow(10,n+1);
         if(num%10<5)
         {
            if(n==0)printf("%.0f\n",area);
            else if(n==1)printf("%.1f\n",area);
            else if(n==2)printf("%.2f\n",area);
            else if(n==3)printf("%.3f\n",area);
            else if(n==4)printf("%.4f\n",area);
            else if(n==5)printf("%.5f\n",area);
            else if(n==6)printf("%.6f\n",area);
         }
         else  
         {
            area=area-5*pow(10,-(n+1));
            if(n==0)printf("%.0f\n",area);
            else if(n==1)printf("%.1f\n",area);
            else if(n==2)printf("%.2f\n",area);
            else if(n==3)printf("%.3f\n",area);
            else if(n==4)printf("%.4f\n",area);
            else if(n==5)printf("%.5f\n",area);
            else if(n==6)printf("%.6f\n",area);
         }
    }
    return 0;
}
/**************************************************************
    Problem: 1099
    User: 2016_hhu09
    Language: C++
    Result: Accepted
    Time:0 ms
    Memory:1592 kb
****************************************************************/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值