leetcode:400. 第N个数字(数学)

题目:

在这里插入图片描述

分析:

1—9
2—902
3—900
3

先定他是几位数。然后就可以确定他在哪个数里面。

代码:

int main()
{
 int n=17;
 long long A[11];
 //表示i位数一共有多少位,严格的 i位数,前面不能是0 
 //int 的最大值 2147483647
 for(int i=1;i<11;i++)
 {
  A[i]=9*pow(10,i-1)*i;
 }
 //定位数。
 int c=0;
 int all=0;
 for(int i=1;;i++)
 {
  all=all+A[i];
  c++;
  if(all==n) return 9;
  if(all>n) break;
 }
 if(c==1) return n;
 all=all-A[c];
 n=n-all;
 cout<<"c:"<<c<<endl;
 cout<<"n:"<<n<<endl;
 int t1=(n-1)/c;
 t1=t1+pow(10,c-1);
 cout<<"t1: "<<t1<<endl;
 int t2=n%c;
 if(t2==0) {
  return t1%10;
 }
 cout<<"t2: "<<t2<<endl;
 int t3=c-t2;
 cout<<"t3: "<<t3<<endl;
 cout<<(int)(t1/pow(10,t3))%10; 
 return (int)(t1/pow(10,t3))%10; 
 } 
发布了195 篇原创文章 · 获赞 126 · 访问量 4634

猜你喜欢

转载自blog.csdn.net/weixin_42721412/article/details/104576628
今日推荐