HDU 2549壮志難酬【水題】

1888 ワード

壮志は報われない
Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 8807    Accepted Submission(s): 2905
Problem Description
さて、MCA山の各道の豪傑はいずれも山を出て敵に抵抗し、昨年、江湖で有名になったことがある.残念なことに、去年上将の第1級を取った時にうっかり右手の右関節の第7回の骨折を取って、1年の長い間養傷して、1つの抱負があるのに壮志は報酬が難しいことがあって、今天下は危険で亡くなって、武術の人はまた手をこまねいて傍観することができなくて、そこで彼は山を出てウイスキーに協力して遼賊に抵抗することを決定して、この時彼の対頭の楓の氷の葉は現れて、2人はすべて水の属性で、勢いが水火になる.
カエデの氷の葉は甘露に1つの問題に答えるように要求して、さもなくば彼を離れさせないで、残念ながら甘露は頭を絞っても実がないで、あなたが彼を助けて解決して、彼が大業を完成することを望んでいます.
問題は、小数xをあげて、小数点を算出した後のn位は何ですか(1<=n<=6)
Input
まず、tグループのデータがあり、t行に従うことを示すtを入力します.
各行に1個の小数を入力する(入力データは必ず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「カラフルな下沙キャンパス文化活動月」の大学生プログラム設計コンテストおよび新入生専用場
あなたに1つの小数(きっと小数点があります)をあげて、1つの整数Nと、小数点の後でN位がいくらなことを求めます.
考え方:文字列で小数を直接保存し、小数点の位置を見つけます.それから小数点を判断してからN位足りない、N位足りない
ビットは小数点以下N番目のビットの文字を出力し、そうでなければ「0」を出力します.
例を挙げて説明すると:1.2 3   実は1.2000 3小数点以下の3位は元々なかったので、0で揃えます.
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;

char s[11];
int main()
{
    int T,N;
    cin >> T;
    while(T--)
    {
        cin >> s >> N;
        int pos,len;
        len = strlen(s);
        for(pos = 0; pos < len; ++pos)
        {
            if(s[pos] == '.')
                break;
        }
        int sum = 0;
        for(int i = pos+1;i < len; ++i)
            sum++;
        if(sum >= N)
            cout << s[pos+N] << endl;
        else
            cout << 0 << endl;
    }

    return 0;
}