两段代码有什么区别?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了两段代码有什么区别?相关的知识,希望对你有一定的参考价值。

所以最近我试图解决一个由于某些原因我写了一些代码而无法工作的问题(代码#1)

#include <iostream>

typedef long long ll;
using namespace std;
ll k;
ll x, t;

int main()

    cin.tie(NULL);
    ios_base::sync_with_stdio(false);

    cin >> t;
    while(t--)
    
        cin >> k >> x;
        ll i = 0;
        while(i < 10)
        
            if (i % 9 == x)
                break;
            ++i;
        
        k--;
        i += 9*k;
        cout << i << "\n";
    

而下面的代码确实起作用

#include <iostream>

typedef long long ll;
using namespace std;
ll k;
ll x, t;

int main()

    cin.tie(NULL);
    ios_base::sync_with_stdio(false);

    cin >> t;
    while(t--)
    
        cin >> k >> x;
        k--;
        ll i = 9*k + x;
        cout << i << "\n";
    

x的约束:1 <= x <= 9k:1 <= k <= 10 ^ 12。请注意,x永远不会为0,因此从根本上讲,i为1/0的问题并不是原因。但是我仍然不明白为什么这样做,因为结果似乎是一样的。和反例有什么区别?

答案

此代码块

以上是关于两段代码有什么区别?的主要内容,如果未能解决你的问题,请参考以下文章

spark中的lit()有啥用?下面的两段代码返回相同的输出,使用 lit() 有啥好处 [重复]

typedef与#define的区别

两段c++代码功能一样为什么运行时间差这么多???

Java 通过引用传递

SIGABRT 和 SIGSEGV 有啥区别

同步和异步编程有啥区别(在node.js中)