题目如下:
AC代码如下:
#include<iostream>
#include<cstdio>
using namespace std;
int s[1000010];
int main()
{
s[1] = 2;
int p = 3;
int tt = 4;
int ttt = 4;
for(int i = 2;i<=1000000;i++)
{
s[i] = p;
tt--;
if(tt==ttt/2)
p++;
if(tt==0)
{
ttt+=2;
p++;
tt = ttt;
}
}
int t;
cin>>t;
while(t--)
{
int n;
scanf("%d",&n);
printf("%d\n",s[n]);
}
}
这个题算是一道签到题了
思路:打表找规律
由于比较好想,我就直接手写找规律了,请看下图:
请您仔细看一下,就很容易找到规律啦~~。
如果还有点懵,请您结合代码再次看一下 上图,您就应该可以明白啦!
最后感谢您的阅读!!!