Знайти k-ту цифру послідовності 110100100010000... , у якій виписано поспіль степені 10. Мова C++
Ответы
Ответ дал:
1
Відповідь:
#include<iostream>
using namespace std;
int main()
{
int k;
cin >> k;
int length = 1; //length of the current number
int start = 1; //start of the current number
int end = start * 10 - 1; //end of the current number
while(k > end)
{
length++;
start = end + 1;
end = start + length * 9 - 1;
}
int position = k - start; //position of k in the current number
int number = pow(10, length - 1) + position / length;
int digit_position = length - position % length;
int result = number / pow(10, digit_position - 1) % 10;
cout << result << endl;
return 0;
}
Вас заинтересует
3 месяца назад
3 месяца назад
4 месяца назад
4 месяца назад
1 год назад
7 лет назад