2013-10-26 2 views
0

"우리는 루프가 계속해서 모든 합리적인 수를 유지하는 한 특정 순서로 분수를 열거 할 필요가 없다. 약 :그런 결과를 산출하는 이유를 알 수 없다.

for i=0 to infinity 
    for j=1 to i 
     display i/j 
    next j 
next i 

당신은 사실 우리가 각 부분 1/2 좋아하기 때문에 동일한 용어 배의 무한한 수의 2를 생성하는 당신은 충분히 기다리면 모든 부분은 결국 표시됩니다 것을 볼 수 있어야합니다. /4.4/8 등 .. "

출력이 1/2, 2/4 등 ... 인 이유는 무엇입니까? 내가 알아낼 수 없습니다 : ((C 또는 C++ 언어로이 의사를 번역, 어쩌면 나는 그것을 바로하지 않았다 : 당신이 다음 float 캐스팅

#include <stdio.h> 

int main() 
{ 
    for (int i = 0; i < 100000000000000000; i++) { 
    for(int j = 1; j < i; j++) { 
     printf("%f\n", (float)(i/j)); 
    } 
} 
return 0; 
} 
+1

이 질문을받을 때마다 나는 펜스 만 가지고 있다면 ... -. - " –

+1

'출력이 1/2, 2/4 등 ... 인 이유는 무엇입니까? 나도 알아낼 수 없다. ((''- 나는 할 수 없다. 위의 코드로 C 에서처럼 결과를 얻지 못할 것이다. 나는이 질문이 완전히 명확하지 않다고 생각한다.) – Sadique

+0

출력 (일단 NPE 수정) '1, 0.5, ...'분수를 원할 경우 분자와 분모를 따로 따로 인쇄해야합니다. – Adam

답변

2
  • 왜 출력이 1/2, 2/4 ...입니까?

나는 당신이이 문장을 참조한다고 가정 : 사실

우리가 1/2, 2/4처럼 각 부분을 때문에 동일한 조건의 시간 의 무한한 수를 생성한다. 4/8 등등 .. "

출력이 1/2, 2/4, 4/8이라고 말하는 것은 아닙니다. 특정 분수, 예를 들어 1/2가 1/2 == 2/4 == 4/8 == ... 등등 ...

+0

좋습니다. 감각 ... 고마워! – ner0x652

4

i/j 반환 정수 결과()

합니다. , 일에 따라

(float)(i/j) 

또한

((float)i)/j 

에 변경 범위가 이고 플랫폼에 100000000000000000 인 경우 int에 적합하지 않을 수 있습니다.

+0

변경되었지만 소개 문에 지정된 결과가 여전히 생성되지 않습니다. – ner0x652

관련 문제