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的范围,值得一
#包括
使用名称空间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;
}