C++带有数字加法的反向数字

C++ reverse number with digit adding

本文关键字:数字 C++      更新时间:2023-10-16

大家好,提前感谢那些试图回答或回答这个问题的人。

  • 计算年份数字的总和。
  • 计算年份与年份"反向"之间差额的绝对值。
  • 计算当天偶数因子的数量。
  • 计算日、月和年的最大公约数。
  • 计算求解 Collatz 问题所需的步骤数月份

这些是我需要完成的任务,作为工程专业的学生,我在这方面走了多远。在下面的代码中,我希望像这样

19
90

0
1
0T M B B

我得到的答案是

请输入您的出生日期(日毫米年):12 11 1981
19

8468304按任意键继续 . . .
8468304

如何做对我知道我的方程是正确的或(公式,方法)。然而,这就是我所知道的。

#include<iostream>
#include<cstdlib>
using namespace std;
int main() 
{ 
    cout << "Please enter your birthdate (dd mm yyyy): "; 
    int day, month, year, count,rev;
    int sum = 0;
    cin >> day>> month >>year; 
    while (year!=0)
    {
        int count = year%10;
        sum +=count;
        year /= 10;
    }
    while(year>0)
    {
        rev = year%10;
        year=year/10;
    }
    cout<<sum<<endl;
    cout << rev;
    system ("pause");
    return 0;
}//end main

请帮忙!

在第一个循环之后,while (year != 0) ,您不会重置 year 的值,因此它保持为零,第二个循环根本不执行。

您需要保存 year 的值,并在启动第二个循环时使用它。

只是关于组织的注意事项:我建议为每个任务编写一个子例程/函数,例如

int digit_sum(int year) {
    /* ... */
    return sum;
}
int reverse_difference(int year) {
    /* ... */
    return diff;
}

等等。这样,您还可以防止错误,例如在第一次计算期间修改年份变量而不保存原始值(正如David Winant已经指出的那样,您确实这样做了)。