1221年問題N-厄介小数点 - エントリのタイトル - -C ++を扱う文字列達成するために

質問N:私は、小数点を憎みます

制限時間:1秒メモリ制限:32メガバイト
提出:311は解決:89

タイトル説明

暁明は常に頭痛を見るために、小数点、小数点を嫌っていました。残念なことに、赤は彼に話題を与えた、と彼に尋ねた:
あなたの小数xを与えるために、あなたは右、最初のnビットの後に小数点をどのように計算することができますか?(1 <= N <= 6 )
暁明は、この問題を見た後、頭痛が瞬時に気絶し、あなたは彼を助けることができますか?

エントリー

:T行に続く最初の入力T、発現データのTセット、
ライン小数あたり(ABの形態における入力データが保証され、問題を簡単にするために、定期的な小数ない場合が存在しない)、
そしてnは、小数点いくつかの最初の。

輸出

小数点数後の出力のビット数N。

サンプル入力  のコピー

3 
1.234 1 
2.345 2 
3.456 3

サンプル出力  のコピー

2 
4 
6

コード

ヒント:出力の場合を検討する0

#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

int main(){
    int T;
    scanf("%d",&T);
    getchar();
    string s;
    int num;
    for(int i = 0;i < T;i++){
        cin>>s;
        getchar();
        cin>>num;
        getchar();
        int j;
        int len=s.size();
        if(num>=1&&num<=6){
                for(j = 0;;j++){
                    if(s[j]=='.'){
                        break;
                    }
                }
                if((len-(j+1))<num){
                    printf("%d\n",0);
                }
                else{
                    printf("%d\n",s[j+num]-'0');
                }

        }else{
            i--;
            continue;
        }
    }
}

 

公開された20元の記事 ウォンの賞賛0 ビュー121

おすすめ

転載: blog.csdn.net/weixin_31789689/article/details/104736254