알 리 바 바 알고리즘 강 프로 그래 밍 문제: 초보 창고
채소 새 창 고 는 매우 크 고 신기 한 곳 이다. 각종 아름 다운 상품 들 이 진열 대 위 에 가지런히 놓 여 있다. 보통 한 종류의 상품 은 선반 의 한 칸 에 놓 여 있 고 칸 은 통 일 된 번호 가 있어 서 노동자 들 이 선택 하기에 편리 하 다.어느 날 목 철 은 채소 창 고 를 둘 러 보 았 는데 본의 아니 게 첫 번 째 선반 칸 번 호 는 1, 2 - 3 개 는 1, 2, 4 - 6 개 칸 은 각각 1, 2, 3, 7 - 10 개 칸 번 호 는 각각 1, 2, 3, 4 이 고 각 칸 번 호 는 0 - 9 의 정수 이다.또한 인접 한 칸 의 번 호 를 연결 하면 다음 과 같은 규칙 이 있 습 니 다.목 철 은 궁금 했다. 그 는 K 번 째 칸 번호 가 얼마 인지 빨리 알 고 싶 어 했다.
부호 블록
#include
#include
#include
using namespace std;
int main()
{
long long k;
while (cin >> k)
{
long long row = floor((-1.0 + sqrt(1.0 + 8.0 * k)) / 2.0);
long long col;
if (k - (1 + row)*row / 2>0)
{
col = k - (1 + row)*row / 2;
}
else
{
col = row;
}
long long sum = 0;
int q = 10;
long long n = 0;
while(sum < col)
{
n++;
sum = ( n * 9 * powl(q, n) - 9 - (9 * 10 * (1 - powl(q, n - 1)) / (1 - q)) ) / (q - 1);
}
long long n_last = n - 1;
long long sum_last = (n_last * 9 * powl(q, n_last) - 9 - (9 * 10 * (1 - powl(q, n_last - 1)) / (1 - q))) / (q - 1);
long long d_col = col - sum_last - 1;//d_col
long long digit = powl(10 , n - 1) + floorl(d_col / n);
string str = to_string(digit);
cout << str[d_col % n] << endl;
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.