c++ - 交叉和计算,任何人都可以解释一下代码吗?
问题描述
我将在一开始就学习 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 循环有什么作用?感谢帮助。
解决方案
以防万一您不确定:
模 运算符或%将其左侧的数字除以其右侧的数字(其操作数),并给出余数。例如,49 % 5 = 4。
反正,
while 循环采用条件语句,并将一遍又一遍地执行以下括号中的代码,直到该语句变为 false。在您的代码中,虽然input 不等于 zero,但做一些事情。
为了将所有这些放在一起,每个循环,您将输入模数为 10 - 这将始终返回给定 Base-10 数字的最后一位数字。您将其添加到运行总和(crossSum)上,然后将数字除以 10,基本上将数字移动一个空格。while 循环确保您执行此操作直到数字完成 - 例如,如果输入是 104323959134,它必须循环12次,直到获得所有数字。
推荐阅读
- windows - awk 附加 /32 在 MS Windows 中不起作用
- java - 将 MultiPartFile 转换为 XWPFDocument
- mysql - MYSQL过滤多个日期作为数组
- vba - 错误:未定义子或函数 - 简单小计宏
- python - 为什么在 BeautifulSoup 中添加 head 标签会在 HEAD 之后立即关闭 HTML 标签?
- javascript - 有没有办法将属性放入innerHTML?还是基于没有 jquery 的下拉菜单切换 div?
- shopify - 学习shopify主题开发的最佳地点是什么?
- python - cvxpy:'sum_entries' 未定义
- php - 无法回显html
- python - 附加两个具有不相等列的数据框