Знайти k-ту цифру послідовності 110100100010000... , у якій виписано поспіль степені 10. Мова C++
Ответы на вопрос
Ответил YanCrab
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;
}
Новые вопросы
Математика,
1 год назад
Алгебра,
1 год назад
Английский язык,
1 год назад
Английский язык,
1 год назад
Алгебра,
7 лет назад
Математика,
7 лет назад