⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 10.txt

📁 7道ACM题
💻 TXT
字号:
#include <stdio.h>


int main()
{
	int shuzu[ 6 ];
	shuzu[ 0 ] = 0, shuzu[ 1 ] = 45, shuzu[ 2 ] = 9000;
	shuzu[ 3 ] = 1386450, shuzu[ 4 ] = 188019000; shuzu[ 5 ] = 4294967295;

	int shuzu2[ 6 ];
	shuzu2[ 0 ] = 0, shuzu2[ 1 ] = 1, shuzu2[ 2 ] = 11;
	shuzu2[ 3 ] = 192, shuzu2[ 4 ] = 2893, shuzu2[ 5 ] = 38894;

	int n;
	scanf( "%d", &n );

	for ( int i = 0; i < n; i++ )
	{
		int m;
		scanf( "%d", &m );

		if ( m == 1 )
		{
			printf( "%d\n", 1 );
			continue;
		}

		int fix = 0;
		for ( int j = 0; j < 5; j++ )
		{
			m -= shuzu[ j ];
			if ( m <= shuzu[ j + 1 ] )
			{
				fix = j;
				break;
			}
		}

		if ( m == shuzu[ fix + 1 ] )
		{
			printf( "%d\n", 9 );
			continue;
		}

		fix++;
		int temp = shuzu2[ fix ];

		while ( m > temp )
		{
			m -= temp;
			temp += fix;
		}

		for ( int j = 1; ; j++ )
		{
			temp = m;
			fix = j;

			if ( j <= 9 )
				m -= 1;
			else if ( j <= 99 )
				m -= 2;
			else if ( j <= 999 )
				m -= 3;
			else if ( j <= 9999 )
				m -= 4;
			else if ( j <= 99999 )
				m -= 5;

			if ( m <= 0 )
				break;
		}

		m = temp;
		temp = 100000;
		while ( fix / temp == 0 )
			temp /= 10;

		temp *= 10;
		for ( int j = 1; j <= m; j++ )
		{
			fix = fix % temp;
			temp /= 10;
		}

		printf( "%d\n", fix / temp );
	}
}
		

			

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -