同是对double型的正数向下取整,floor和(int)什么区别?
为什么如下的两个程序,一个是WA,一个是AC?
// WA代码#include <iostream>#include <cmath>using namespace std;int main(){ double s,m; int n; cin >> n; for (int i=1;i<=n;i++) { cin >> m; s=0; if (m==0) cout << "1" << endl; else { for (double k=1;k<=m;k++) s+=log10(k); cout << floor(s)+1 << endl; } } return 0;}//------------------------//AC代码#include <iostream>#include <cmath>using namespace std;int main(){ double s,m; int n; cin >> n; for (int i=1;i<=n;i++) { cin >> m; s=0; if (m==0) cout << "1" << endl; else { for (double k=1;k<=m;k++) s+=log10(k); cout << (int) s+1 << endl; } } return 0;}