2013-07-31 5 views
0
private void button1_Click(object sender, EventArgs e) 
{ 
     String UserNumber = this.textBox1.Text; 
     int NewUserNumber = Convert.ToInt32(UserNumber); 
     int result = 0; 
     int second = 0; 

     while (NewUserNumber >= 1) 
     { 

      result = NewUserNumber * (NewUserNumber - 1); 
      NewUserNumber--; 
     } 
     String i = Convert.ToString(result); 
     this.textBox2.Text = i; 
    } 
} 

이것이 나를위한 숙제라고 알고 있지만, 나는 붙어 있습니다. 나는 정말로 이것을 해결하기를 원하지 않는다. 나는 그것을 스스로하고 싶다.C# SIMPLE 팩토리얼 프로그램

..

어떤 도움을 그것이 작동하지 않는 이유는. 그것은 아무리 내가 넣어 무엇을 2를 출력하지거야 .. 내가 쉽게 자바에서이 작업을 수행 할 수

을 이해하지 않지만, 변환은 나에게 도착 잘 될 것입니다.

+0

당신의 내용을 덮어 때문에'마다 result'. – Corak

+0

그냥 0으로 결과를 초기화 중이기 때문에, 1로 초기화합니다. Result = 1. 또한 매번 result의 결과 값을 덮어 쓰고 있습니다. 결과 = result * (number-1) – Akshay

답변

7

문제는 변환되지 않습니다.

int Result=1; 

result = NewUserNumber * (NewUserNumber - 1); 
+2

doh! 감사!!!!! – user2514595

0

초기화 결과보고 이

당신도

public int Factorial(int num) 
{ 
    if(num==1) 
    return 1; 
    return num * Factorial(num-1); 
} 
,691를 follwing을 사용할 수 있습니다

while (NewUserNumber >= 1) 
{ 
    result = result * NewUserNumber; 
    NewUserNumber--; 
} 

또는

을 다음과 같이 for 루프를 작성 해주세요 당신은 또한 당신이 선언의 외측 결과 값과 곱셈

while (NewUserNumber >= 1) 
    { 

     result = NewUserNumber * (NewUserNumber - 1); 
     NewUserNumber--; 
    } 
    String i = Convert.ToString(result); 

을 설정하는 방법

+2

OP는 해결책을 원했지만, 그가 알고 싶어하는 이유는 무엇입니까? – Corak

+0

Corak이 말한 것 .. 또한, 1로 결과를 시작하지 마십시오. – Sayse

+0

감사합니다 .... 아직도 약간 혼란 스럽습니다. 최종 결과를 저장하고 있기 때문에 훨씬 큰 숫자가됩니다. 다른 번호로 보내시겠습니까? (5의 예는 제가 생각한 것입니다 ..) – user2514595

0

당신은 당신의 while 루프 구조를 살펴볼 필요가 또 다른 int second = 0; - 당신이 선언 이유 그나마 참조하십시오.

0

다른 조언으로 코드를 수동으로 실행 해보는 것이 좋습니다.

루프를 실행하여 결과 값과 각 반복마다 NewUserNumber가 무엇인지 파악해야합니다.

행운을 빌어 요 ...

0

그런 다음 시계 창을 사용하여 단계별 코드에 디버거를 실행하려고합니다. 이것은 쉽게 수행 할 수 있으며 각 점에서 각 값이 무엇인지 정확히 나타납니다 (중단 점 설정). 어떤 IDE를 사용하고 있습니까?

1
  while (NewUserNumber > 1) 
      { 
       result = result * NewUserNumber; 
       NewUserNumber--; 
      } 
0

INT 요인 (INT 입력) {INT 응답 = 0;

if (input > 0) 
{ 
    count = 1; 
    while (count <= input) 
    { 
     if (count == 1) 
     { 
      answer= 1; 
      count++; 
     } 
     else 
     { 
      answer = count * answer; 
      count++; 
     } 
    } 
} 
else 
{ 
    MessageBox.Show("Please enter only a positive integer."); 
} 

return answer; 

}

0
static void Main(string[] args) 
    { 
     int number, fact; 
     Console.WriteLine("enter the number for geting factorial"); 
     number = Convert.ToInt32(Console.ReadLine()); 
     fact = number; 
     for (int i = fact - 1; i > 0; i--) 
     { 
      fact = fact * i; 
     } 
     Console.WriteLine(fact); 
     Console.ReadLine(); 
    } 
+0

'정말이 문제를 해결하고 싶지 않습니다. 직접하고 싶습니다.' – bummi