C语言编程问题 求助

来源:百度知道 编辑:UC知道 时间:2024/05/09 09:33:37
编程
已知数列1,3,3,3,5,5,5,5,5,7,7,7,7,7,7,7........
求它第40位和第1000位数字

13和63,很简单,注意到第2-4个数是3,第5-9是5,10-16是7,所以给定一个数n,只要找到不小于n的最近的一个完全平方数k*k,答案就是2*k+1

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int num(int k){
int i=sqrt((float)k-0.1);
return 2*i+1;
}

int main(){

printf("%d ",num(40));
printf("%d ",num(1000));
return 0;
}