我的代码正在为输入100打印192(这是所需的结果)。但是当我把它提交给在线裁判时,它显示我的程序输出100的输出是190.我复制并粘贴了ideone.com中的代码并输入了100我得到了结果192.我将它发送给我的朋友而在他的电脑上,输出是190.但他也将代码提交到ideone.com并得到了192个。问题是什么?这里是我的代码:C++程序在不同的计算机上给出不同的结果
#include <bits/stdc++.h>
using namespace std;
typedef long long int lli;
int main(){
lli in,ans = 0;
cin >> in;
if(in < 10)
cout << in << endl;
else{
lli digits = 0;
lli temp = in;
while(temp > 0){
digits++;
temp /= 10;
}
digits--;
while(in > 0){
//cout << "in: " << in << endl;
//cout << "digits: " << digits << endl;
ans += ((in - (pow(10,digits) - 1)) * (digits + 1));
in = in - (in - (pow(10,digits) - 1));
digits--;
if(in == 9){
ans+= 9;
break;
}
}
cout << ans << endl;
}
}
ideone链接:http://ideone.com/zOvHzW
这究竟是为什么?我明白这可能是一个编译器问题,但是这里真正发生了什么?
阅读CodeChef有关如何处理输入和输出的指南! :) – Ajay
注意,[不要'#include'](https://stackoverflow.com/questions/31816095/why-should-i-not-include-bits-stdc-h ) –
CoryKramer
为什么不包含? –