2014-04-13 2 views
0

나는 1-1000 사이에 3 또는 5의 배수 인 모든 숫자를 화면에 보여주는 간단한 연습을 시도했습니다. 모두가 modulus 연산자 (%)를 사용하는 방법을 알고 있으므로 modulus division이 0을 반환하면 숫자가 3 또는 5의 배수가됩니다. 비교하는 항목은 매우 간단합니다.C# 모듈러스 연산자로 불필요한 결과

요점은 내가 3 if (i % 3 == 0) 만 (105)이 일치하는 첫 번째 수를 비교하면 나는 발현을 비교 어떤 이유로 if (i % 3 == 0 || i % 5 == 0) 일치하는 첫 번째 숫자는 363

, 그리고 마지막으로 내가와 비교할 때이다 단지 5 (if % i = 5 == 0) 인 경우 결과는 5에서 시작하여 예상대로입니다.

나는 무엇이 일어나고 있는지 알고 싶습니다. 아니면 지금은 볼 수없는 간단한 것입니다. 나는 잠들기 때문에 밤에.

static void Main(string[] args) 
    { 
     long total = 0; 


     for (int i = 3; i <= 1000; i++) 
     { 
      if (i % 3 == 0 || i % 5 == 0) 
      { 
       total += i; 
       Console.WriteLine(i.ToString()); 

      } 

     } 

     Console.Read(); 

    } 
+1

내 시스템에서 완벽하게 작동합니다. – merlin2011

+0

@ Selman22처럼, 내 콘솔이야. 크기가 제한되어있다. – blade

+0

사실, 우분투에서'모노 '를 사용하고있어 출력을'less'로 파이프했다. UnixUtils를 가져와 Windows에서 재생해야합니다. :) – merlin2011

답변

4

사실, 항상 올바른 결과를 표시하지만 콘솔 크기로 인해 볼 수는 없습니다.

시도 :

for (int i = 3; i <= 1000; i++) 
{ 
    if (i % 3 == 0 || i % 5 == 0) 
    { 
     Console.WriteLine(i); 
    } 
    if (i % 100 == 0) Console.Read(); 
} 

를 눌러 다음 100 번호를 확인 입력합니다.

+0

그래서, 얼마나 많은가? 숫자가 화면에 표시 될 수 있습니다. – blade

+0

@fernando, 그것은 화면 높이만큼 정확하게 나타납니다. :) – merlin2011

+0

그것은 단지 때마다 298 숫자를 보여줄 수있다 – blade

2

출력을 파일로 리디렉션하여보고보십시오. Program.exe > Output.txt을 사용하여 리디렉션 한 다음 메모장에서 엽니 다.

+0

홀리 몰리, 네가 옳았다. txt 파일은 괜찮 았어, 거의 미쳤어, 고마워. 글쎄, 나는 다른 것을 배웠다. 콘솔은 꽤 작다. – blade