C++ 给定日期前n天背后的逻辑

C++ 给定日期前n天背后的逻辑,c++,math,logic,C++,Math,Logic,给定: 星期天 星期一 星期二 星期三 星期四 星期五 星期六 假设一天是2天(星期二),n天是10天,那么我们让你在星期二之前数到10天,我们得到6天(星期六) 代码: #包括 使用名称空间std; int main() { 整数天,n; cin>>天>>n; int x=n%7; int ans=第x天; 如果(ans>0){ 简单地说,您需要在当前日期之前返回x,这就是为什么您要从日期中减去x。对于另一部分,在减去之后,您可能会得到负值,因此您必须向其添加7,以使其保持0到6的范围,值得一

给定:

  • 星期天
  • 星期一
  • 星期二
  • 星期三
  • 星期四
  • 星期五
  • 星期六
  • 假设一天是2天(星期二),n天是10天,那么我们让你在星期二之前数到10天,我们得到6天(星期六)

    代码:

    #包括
    使用名称空间std;
    int main()
    {
    整数天,n;
    cin>>天>>n;
    int x=n%7;
    int ans=第x天;
    如果(ans>0){
    
    简单地说,您需要在当前
    日期之前返回
    x
    ,这就是为什么您要从
    日期
    中减去
    x
    。对于另一部分,在减去之后,您可能会得到负值,因此您必须向其添加
    7
    ,以使其保持0到6的范围,值得一提的是,正确的条件是如果(ans>=0),则为

    这段代码要解决的任务是什么?我不明白为什么我们要使用day-x——我不知道你的问题到底是什么。你知道减法是程序正常运行所必需的,否则答案是不正确的。如果你说你是手工完成的,如果你不进行减法,会发生什么act或add?有没有做过时钟算术?如果给你一个问题,说明“现在是3:00。10小时前的时间是多少?”你会做同样的事情。唯一的区别是有12个值而不是7。“我不明白为什么我们使用
    day-x
    ”--你不明白为什么你要减法来找到比其他东西先出现的东西???你怎么找到比
    8
    先出现的
    3
    数字?(好的,这个表达式有三个部分,
    day
    -
    ,和
    x
    。但是,你没有说你不理解哪些部分,所以我可以自由地假设没有人理解。你想更精确地回答你的问题吗?“我不明白为什么我们使用[…]
    ans+7
    ”--尝试一个实验。输出
    ans
    而不是
    ans+7
    ,并使用导致该行被执行的输入。您的输出发生了什么变化?为什么需要添加七行?
    #include<iostream>
    using namespace std;
    int main()
    {
        int day, n;
        cin >> day >> n; 
        int x = n % 7;
        int ans = day - x;
        if(ans > 0) {
            cout << ans;
        }
        else {
            cout << ans + 7;
        }
        return 0;
    }