任意位的数位分离

题目描述
给定位数的数位分离想必大家都已经学会了,给定位数的数位分离想必大家都已经学会了,接下来让我们加大难度。给你一个十位以内的整数,你能输出它的任意一位的数字么。

输入
两个整数S,x。以空格隔开,其中0<S<=2^31,x<=log10 S。

输出
S的第x位上的数字。

样例输入
123456 4

样例输出
4

# include<stdio.h>
# include<math.h>
int main(void)
{
    
    
	long long int n,b,a,len,i,s;
	scanf("%lld %lld",&n,&b);
	len=(int)log10(n)+1;
	s=len-b+1;
	for(i=1;i<=s;i++)
	{
    
    
		a=n%10;
		n=n/10;
	}
	printf("%lld\n",a);
	return 0;
}
 #include<stdio.h>
 #include<math.h>
 int main(void)
 {
    
    
  long long int x,n,m=0,k,y;
  scanf("%lld%lld",&x,&n);
  k=x;
  while(x!=0)
  {
    
    
    x=x/10;
    m++;
   }
   y=k/pow(10,m-n);
   printf("%lld\n",y%10);    
   return 0;
    }

如果不将数据从整型换成长整形的话将会造成时间超限

猜你喜欢

转载自blog.csdn.net/qq_45858803/article/details/109790727