我的代碼正在爲輸入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
爲什麼不包含? –