问题标题: 酷町堂:请问3881怎么写

0
0
已解决
朱子尘
朱子尘
初级光能
初级光能

3881   循环小数

题目描述 Description

现在有一个无限循环小数是0.145127856891451278568914512785689…,现在给定一个数字n,需要你求出小数点后第n位数字是多少。

输入描述 Input Description

一个正整数t,表示有t组数据。

接下来t行,每行一个数字n。

输出描述 Output Description

输出小数点后第n位数字是几。

样例输入 Sample Input

 

3
1
2
5

样例输出 Sample Output

 

1
4
2

数据范围及提示 Data Size & Hint

1<n<1000000

我的超时代码:

#include<iostream>
using namespace std;
int a[1000010];
int main()
{
    int n,m=1;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
        while(1)
        {
            if((a[i]==1||a[i]==m+11)||(a[i]==4||a[i]==m+11))
            {
                cout<<1<<endl;
                break;
            }
            else if(a[i]==2||a[i]==m+11)
            {
                cout<<4<<endl;
                break;
            }
            else if((a[i]==3||a[i]==m+11)||(a[i]==8||a[i]==m+11))
            {
                cout<<5<<endl;
                break;
            }
            else if(a[i]==5||a[i]==m+11)
            {
                cout<<2<<endl;
                break;
            }
            else if(a[i]==6||a[i]==m+11)
            {
                cout<<7<<endl;
                break;
            }
            else if((a[i]==7||a[i]==m+11)||(a[i]==10||a[i]==m+11))
            {
                cout<<8<<endl;
                break;
            }
            else if(a[i]==9||a[i]==m+11)
            {
                cout<<6<<endl;
                break;
            }
            else if(a[i]==11||a[i]==m+11)
            {
                cout<<9<<endl;
                break;
            }
            m++;
        }
    }
    return 0;
}

求大佬指点


0
0
朱子尘
朱子尘
初级光能
初级光能

谁先敲1234321437482947采纳谁

已解决

0
0
黄依成
黄依成
中级天翼
中级天翼

定义 n,a[1000005];
    输入>>n;
    循环(int i=1;i<=n;i++){
        输入>>a[i];
        如果(a[i]%11==1)  输出<<1<<换行;
        if(a[i]%11==2)  cout<<4<<endl;
        if(a[i]%11==3)  cout<<5<<endl;
        if(a[i]%11==4)  cout<<1<<endl;
        if(a[i]%11==5)  cout<<2<<endl;
        if(a[i]%11==6)  cout<<7<<endl;
        if(a[i]%11==7)  cout<<8<<endl;
        if(a[i]%11==8)  cout<<5<<endl;
        if(a[i]%11==9)  cout<<6<<endl;
        if(a[i]%11==10) cout<<8<<endl;
        if(a[i]%11==0)  cout<<9<<endl;
    }

0
我要回答