0
루프 결과의 마지막 반복이 잘못되었습니다. 나는 빼기 전에 숫자가 길어질 수 있음을 안다. 그래서 나는 오래 힘을 길렀다. 마지막 반복 결과는 17888888888888888889이어야합니다. 왜 그렇지 않습니까? (9 분할 전)long long 정수를 사용하는 계산 오류
const int NR_LEVELS = 18;
unsigned long levels[NR_LEVELS];
unsigned long long power = 10;
for(unsigned int i = 0; i < NR_LEVELS; i++) {
levels[i] = ((i+1)*10*power-(i+2)*power+1)/9;
cout << levels[i] << endl;
power *= 10;
}
levels[17] = 17888888888888888889lu;
for(unsigned int i = 0; i < NR_LEVELS; i++) {
cout << levels[i] << endl;
}
aaaarrrrr ... 나는 하루 종일 알고 있었지만 어쨌든 나는 int> int라고 생각하고 그것을 알 수 없다 : C –
@ lord.didger : 코드에 타입 문제가 있지만, 올바른 유형을 선택하면 올바른 결과를 얻을 수 없습니다. – nhahtdh