首页 > 解决方案 > 交叉和计算,任何人都可以解释一下代码吗?

问题描述

我将在一开始就学习 C++,并努力应对大学的一些挑战。任务是计算交叉和并仅使用模数和除法运算符。

我有下面的解决方案,但不了解机制..也许任何人都可以提供一些建议或帮助了解发生了什么。

我试图弄清楚模运算符是如何工作的,并一步一步地浏览代码,但仍然不明白为什么需要 while 语句。

#include <iostream>
using namespace std;

int  main()
{

  int input;
  int crossSum = 0;

  cout << "Number please: " << endl;
  cin >> input;

  while (input != 0) 
  {
    crossSum = crossSum + input % 10;
    input = input / 10;
  }

  cout << crossSum << endl;

  system ("pause");
  return 0;
}

假设我的输入数字是 27。交叉和是 9

第一步:crossSum = crossSum + (input'27' % 10 ) // 0 + (modulo10 of 27 = 7) = 7

下一步:input = input '27' / 10 // (27 / 10) = 2.7; Integer=2 ?

如何将它们组合在一起,while 循环有什么作用?感谢帮助。

标签: c++

解决方案


以防万一您不确定:

运算符%将其左侧的数字除以其右侧的数字(其操作数),并给出余数。例如,49 % 5 = 4

反正,

while 循环采用条件语句,并将一遍又一遍地执行以下括号中的代码,直到该语句变为 false。在您的代码中,虽然input 不等于 zero,但做一些事情。

为了将所有这些放在一起,每个循环,您将输入模数为 10 - 这将始终返回给定 Base-10 数字的最后一位数字。您将其添加到运行总和(crossSum)上,然后将数字除以 10,基本上将数字移动一个空格。while 循环确保您执行此操作直到数字完成 - 例如,如果输入是 104323959134,它必须循​​环12次,直到获得所有数字。


推荐阅读