HDU 2549 壮志难酬 (水题,但有个小坑!)

壮志难酬

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)

Total Submission(s): 10552    Accepted Submission(s): 3512

Problem Description

话说MCA山上各路豪杰均出山抗敌,去年曾在江湖威名显赫的,江湖人称<万军中取上将首级舍我其谁>的甘露也不甘示弱,“天将降大任于斯人也,必先劳其筋骨,饿其体肤,空乏其身”他说。可惜,由于去年取上将首级时不慎右手右关节第七次骨折,养伤达一年之久,空有一腔抱负却壮志难酬,如今天下危亡,习武之人又怎能袖手旁观,于是他决定出山协助威士忌共抗辽贼,这时他的对头枫冰叶子出现,两人都是水属性,但由于十年前的一场恩怨(这是后话)势成水火。

枫冰叶子要求甘露回答一个问题,否则不让他离开,可惜甘露绞尽脑汁未果,希望你来帮他解决,助他完成大业。

问题是这样的:给你一个小数x,让你算出小数点后第n位是什么,(1 <= n <= 6)

Input

首先输入一个t,表示有t组数据,跟着t行:

每行输入一个小数(输入数据保证一定是a.b的形式,为了简单化问题,没有循环小数的情况)

然后跟一个n,表示小数点后第几位

Output

输出一个数表示小数点后第n位的数

Sample Input

3
1.234 1
2.345 2
3.456 3

Sample Output

2
4
6

Author

英雄哪里出来

Source

2008“缤纷下沙校园文化活动月”之大学生程序设计竞赛暨新生专场

原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=2549

题意说得已经很清楚了,但是如果第n位没有,就输出0 !例如:1.123的第4位为 0 !

我的思路,想找到小数点的位置,然后就可以输出相应的位置上的字符.然而我对字符串的理解还不够深入,其实是有个知识点当时老师讲过,现在忘了,现在温习一下:

char str[10]={"12345"};//花括号可以省略

int len = strlen(a)=5;

但是str[6]=‘\0‘,这是系统自动加的!所以该题的判断中:

p+n>len表示要求的位数超过实际位数,将输出0;

p+n<len表示n和法,将输出相应的位置上的字符.

p+n=len呢?那以为刚好为 ‘\0‘,也不能输出字符,所以也要输出0.

注:p为小数点在字符串中的位置,n为要求的位数,len为字符串的长度.

AC代码:

#include <iostream>
#include <cstring>
using namespace std;
int main()
{
    int t,n;
    char a[10];
    cin>>t;

    while(t--)
    {
        cin>>a>>n;
        int len= strlen(a);
        int p;
        for(int i=0;i<len;i++)
        {
            if(a[i]=='.')
            {
                p=i;
                break;
            }
        }
        if(p+n>=len)//p+n==len那一位为'\0'!!!
            cout<<"0"<<endl;
        else
            cout<<a[p+n]<<endl;
    }
    return 0;
}
时间: 2024-10-31 16:49:50

HDU 2549 壮志难酬 (水题,但有个小坑!)的相关文章

HDU 2549 壮志难酬

壮志难酬 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 12541    Accepted Submission(s): 4166 Problem Description 话说MCA山上各路豪杰均出山抗敌,去年曾在江湖威名显赫的,江湖人称<万军中取上将首级舍我其谁>的甘露也不甘示弱,"天将降大任于斯人也,必先劳其筋骨,饿其体

HDOJ/HDU 2549 壮志难酬(取小数点后几位~)

Problem Description 话说MCA山上各路豪杰均出山抗敌,去年曾在江湖威名显赫的,江湖人称<万军中取上将首级舍我其谁>的甘露也不甘示弱,"天将降大任于斯人也,必先劳其筋骨,饿其体肤,空乏其身"他说.可惜,由于去年取上将首级时不慎右手右关节第七次骨折,养伤达一年之久,空有一腔抱负却壮志难酬,如今天下危亡,习武之人又怎能袖手旁观,于是他决定出山协助威士忌共抗辽贼,这时他的对头枫冰叶子出现,两人都是水属性,但由于十年前的一场恩怨(这是后话)势成水火. 枫冰叶子要求

HDU 2549 壮志难酬(字符串,处理小数点)

/* 给你一个小数x,让你算出小数点后第n位是什么,(1 <= n <= 6) Input 首先输入一个t,表示有t组数据,跟着t行: 每行输入一个小数(输入数据保证一定是a.b的形式,为了简单化问题,没有循环小数的情况) 然后跟一个n,表示小数点后第几位 Output 输出一个数表示小数点后第n位的数 */ #include <stdio.h> #include <string.h> #include <math.h> #include <algor

hdu 1999 不可摸数 水题。

不可摸数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 7966    Accepted Submission(s): 2024 Problem Description s(n)是正整数n的真因子之和,即小于n且整除n的因子和.例如s(12)=1+2+3+4+6=16.如果任何数m,s(m)都不等于n,则称n为不可摸数. Input 包

HDU Senior&#39;s Gun (水题)

题意:给n把枪,m个怪兽,每把枪可消灭1怪兽,并获得能量=枪的攻击力-怪兽的防御力.求如何射杀能获得最多能量?(不必杀光) 思路:用最大攻击力的枪杀防御力最小的怪兽明显可获得最大能量.如果每把枪都去射杀刚好1点能量都拿不到的怪物,那简直等于把枪全丢掉. 1 //#pragma comment(linker,"/STACK:102400000,102400000") 2 #include <iostream> 3 #include <stdio.h> 4 #inc

HDU 5590 ZYB&#39;s Biology 水题

ZYB's Biology Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5590 Description ZYB(ZJ−267)在NOIP拿到600分之后开始虐生物题,他现在扔给你一道简单的生物题:给出一个DNA序列和一个RNA序列,问它们是否配对. DNA序列是仅由A,C,G,T组成的字符串,RNA序列是仅由A,C,G,U组成的字符串. DNA和RNA匹配当且仅当每

hdu 5532 Almost Sorted Array (水题)

Almost Sorted Array Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 8541    Accepted Submission(s): 1982 Problem Description We are all familiar with sorting algorithms: quick sort, merge sort

hdu 4847 Wow! Such Doge! 水题

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4847 统计文本中一共有多少个“Doge” 水题 #include <cstring> #include <cstdlib> #include <cstring> #include <cmath> #include <algorithm> #include <iostream> #include <cstdio> #includ

HDU 5578 Friendship of Frog 水题

Friendship of Frog Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5578 Description N frogs from different countries are standing in a line. Each country is represented by a lowercase letter. The distance betwee