티스토리 뷰

문제

정수를 세 부분으로 나누고 싶습니다. 기본적으로 숫자가 54353325421435있고이를 다음과 같이 나누고 싶습니다.

part[0]=54353
part[1]=32
part[2]=5421435

그런 다음 추가하십시오.

해결책

for루프는 최선 다할 것입니다. for루프가 무엇인지 모르는 경우 기본적으로 정의 된 시작 및 끝 지점이있는 반복 수단입니다. 예를 들어, 다음은 "hello world"를 2 번 출력하는 간단한 반복입니다.

for(int i=0; i<2; i++)
   cout << "Hello World" << endl;
   

여기에서for 루프에 대해 자세히 알아볼 수 있습니다 . 귀하의 경우에는 이것을 반복하는 것이 좋습니다. 따라서 기본적으로 먼저 변수를 정수로 저장합니다. (당신이 할 수 있다고 확신합니다.)

 const unsigned long long NUM = 54353325421435; //Make it a constant to not change it

그리고 위에서 언급했듯이 부품 배열이 있습니다.

int part[3]

지금 할 수있는 것은 NUM. 첫 번째 작업을 수행하는 방법을 보여 드리겠습니다.

int access_digits(const unsigned long long int n, int index)
{
    int digit_array[64] = {0};
    
        unsigned long long digits = 0, digit, number = n;
            while (number) {
                    digit = number % 10;
                            number /= 10;
                                    digit_array[digits] = digit;
                                            digits++;
                                                }
                                                
                                                    return digit_array[digits - index - 1];
                                                    }
                                                    
                                                     std::string digits;
                                                      for(int i=0; i<=4; i++)
                                                       {
                                                           digits.append(std::to_string(access_digits(NUM,i)));
                                                            }
                                                             int digit_int = std::stoi( digits );
                                                             

위에서 볼 수 있듯이 먼저 access_digits기능이 있습니다. 이 기능을 사용하여 인덱스로 숫자에 액세스 할 수 있습니다. (크레딧은 Slayther 로 이동 합니다 .) 어쨌든, 그 후에는 0에서 4까지 반복하여 part[0]. 처음 5 자리는 54353.

이제 마지막으로 그들을 더하고 싶습니다. 글쎄요, 그것은 꽤 쉽습니다. 숫자를 반복하고 누산기로 다음과 같이 추가하십시오.

  int accum=0;
  for(int i=0; i<4; i++)
    {
        accum += access_digits(digit_int,i);
          }
           
           

운동

이제 이것을 편집 part[1]하여 part[2]아래에 실습 섹션 을 포함 시키십시오.

참고 문헌

C에서 정수의 숫자 반복

십대 영토 채팅

for 루프

std :: string

문자열 :: 추가

용어 사전

For 루프 :

실행은 init-statement한 번 실행 한 후 statementiteration_expression의 값이 될 때까지 반복하여 condition거짓이된다. 테스트는 각 반복 전에 수행됩니다.

통사론

형식적 구문 :

attr(optional) for ( init-statement condition(optional) ; iteration_expression(optional) ) statement

비공식 구문 :

  attr(optional) for ( declaration-or-expression(optional) ; declaration-or-expression(optional) ; expression(optional) ) statement
-------------------

숫자의 합계를 원하는 경우. 위에서 언급했듯이

int number,digit,sum=0;
while(number!=0)
{
 digit=number%10;
  sum=s+digit;
   number=number/10;
   }
   

이 코드 세그먼트는 번호의 자릿수 합계를 계산합니다.

if number=123;
it will calculate sum=3+2+1=6;


출처
https://stackoverflow.com/questions/39940161
댓글
공지사항
Total
Today
Yesterday
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30