本文主要是介绍HPU OJ 序列找数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
序列找数
时间限制: 1 Sec 内存限制: 128 MB
提交: 51 解决: 18
[提交][状态][讨论版]
题目描述
有这样一个序列(1) (1 2 1) (1 2 3 2 1) (1 2 3 4 3 2 1) (1 2 3 ... n n-1 ... 3 2 1)。问你第N个数是什么? (括号是为了方便大家观看,请忽略掉括号)
输入
有多组测试数据,请处理到文件结束。
每组数据给定一个整数N(1 <= N <= 10^9),表示要查找的数。
输出
每组数据输出一个整数,表示序列中的第N个数。
样例输入
1 2 3
样例输出
1 1 2
提示
#include<stdio.h>
#include<math.h>
int main() {
int n,k,s,i,ans,wqs;
while(scanf("%d",&n)!=EOF) {
wqs=1;
k=(int)sqrt(n);
if(k*k==n) {
printf("1\n");
wqs=0;
}
if(wqs==1) {
i=k+1;
//k=k+1;
ans=n-k*k;
if(ans>i) {
int l=i-ans;
ans=l+i;
}
printf("%d\n",ans);
}
}
return 0;
}
这篇关于HPU OJ 序列找数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!