今天做作業(yè)時(shí)遇到一道題。
一看哪亿,感覺很簡單粥烁,只需要一個(gè)for,看看絕對值i % 2 是否 == 1蝇棉,是的話直接輸出i就行了讨阻。
代碼:
#include <bits/stdc++.h>
using namespace std;
int a, b, t;
int main () {
cin >> a >> b;
for (int i = a; i <= b; i++)
if (abs(i) % 2 == 1)
t++;
cout << t << endl;
for (int i = a; i <= b; i++)
if (abs(i) % 2 == 1)
cout << i << endl;
return 0;
}(本代碼僅適合GCC C++)
提交上去之后:
于是,我改用了scanf與printf板辽。
#include <bits/stdc++.h>
using namespace std;
int a, b, t;
int main () {
scanf("%d%d", &a, &b);
for (int i = a; i <= b; i++)
if (abs(i) % 2 == 1)
t++;
printf("%d", t);
for (int i = a; i <= b; i++)
if (abs(i) % 2 == 1)
printf("%d", i);
return 0;
}
那么奇瘦,為什么C的scanf&printf比cin&cout快呢?
首先劲弦,printf&scanf是C的耳标,而C++為了兼容C,將cin&cout與scanf&printf捆綁在了一起邑跪〈纹拢可以關(guān)掉C++對C的兼容。其次endl這個(gè)家伙絕對沒有人不知道画畅,他一直在刷新緩沖區(qū)砸琅,導(dǎo)致運(yùn)行變慢,若使用'\n'換行轴踱,速度絕對比你想象中的要快症脂。