我们如何考虑此问题中变量的约束?

问题描述 投票:0回答:2

问题:从stdin读取3个数字并将其总和打印到stdout。约束:1 <= a,b,c = <1000。

#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;


int main() {
    int sum = 0;
    int x, y, z;

    cin >> x >> y >> z;
    sum = x + y + z;
    cout << sum << endl;
    return 0;
}

这正在起作用,但是如何照顾1 <= a,b,c = <1000?

c++ constraints
2个回答
1
投票

问题是,“没有输入将小于1或大于1000”。

您可以相应地选择类型。例如,最大总和为1000 + 1000 + 1000,因此,如果您的类型(int)可以在您的平台上保留该值,那么您就是黄金。

这也可能意味着您可以选择对超出该范围的值进行验证或测试,但是如果不清楚,则应与您的指导者联系。无论如何,您可能仍希望执行此验证,以verify传递数据的任何人都遵守约束。通常,是否值得这样做取决于情况。对于教育而言,给出的约束似乎意味着“您无需担心这样做”。也许将来的任务将涉及不受约束的输入。


0
投票

将x,y和z的数据类型声明为int的事实确保了值的范围将在-2147483648到2147483647之间,这是C ++中int(4字节)的默认值范围。] >

© www.soinside.com 2019 - 2024. All rights reserved.