[英]Can someone explain me this code? It gives the reverse of the number we enter
#include <iostream>
using namespace std;
int main()
{
long long n,i;
cout << "Please enter the number:- \n";
cin >> n;
while (n!=0)
{
i=n%10; // what is the use of % here?
cout << i;
n=n/10;
}
return (1);
}
我想了解這段代碼是如何工作的。 為什么它會做它所做的? 如果我們輸入 5123 它將給出 3215。如何?
C 系列語言的基礎知識,運算符 % 給出其左側參數的余數除以右側參數。 因此, n % 10
是n
以十進制表示法的最后一位數字(例如,3 表示 5123。)
運算符
/
執行地板除法:只返回整數部分,沒有余數,運算符
%
返回除法運算的余數
long long n,i;
定義了long long
(64 位無符號整數)類型的變量n
和i
。
cout << "Please enter the number:- \n";
打印出一條提示消息,提示預期的輸入是什么。
cin >> n;
是一個等待標准輸入的命令,它保存在 int 變量n
。 請注意,無效值(非數字)稍后會導致錯誤。
while (n!=0)
開始一個循環,當/如果n
變得等於零時,該循環將被終止。
i=n%10; // what is the use of % here?
此命令返回變量n
的值除以10
的余數。 此操作的結果保存到變量i
。 例如
5123 % 10 = 3
512 % 10 = 2
51 % 10 = 1
5 % 10 = 5
下一個,
cout << i;
將變量i
的值打印到 stdout 並將光標保持在同一行的下一列。 在循環中這樣做,它將在一行中打印出變量i
每個新值,偽造一個反向整數。
最后,
n=n/10;
執行變量n
的值除以10
的“整除法”(沒有余數的除法 - 僅返回整數部分)運算。 結果被保存回變量n
:
5123 / 10 = 512
512 / 10 = 51
51 / 10 = 5
5 / 10 = 0 // after this iteration the loop will terminate
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.