大学课程需要,转手从各种奇异语言回到奇异C语言。遇到洛谷的 P2433 这种“使用 cout 输出”,对于我们这种刚开始学习编程的、只会用 printf 的菜鸟是大大滴不友好。
原题:当半径为 r=5,请输出圆的周长、面积和球体积。取 π=3.141593。请直接使用 cout
输出答案,每行一个数字。
理论上它是这样的(C艹):
int r=5;
cout<<2*3.141593*r<<endl;
cout<<3.141593*r*r<<endl;
cout<<3.141593*r*r*r*4.0/3<<endl;
如果直接聪明地使用 printf(“%lf”,double); 输出,这次会爆 WA。
但是有趣的是,cout 输出 double 的精度是 6,约等同于保留 6 位有效数字。于是聪明的我们又会去尝试,在 printf 下输出保留 6 位有效数字的 double 结果。例如(C):
int r = 5;
printf("%.6g\n", 2 * 3.141593 * r);
printf("%.6g\n", 3.141593 * r * r);
printf("%.6g", 3.141593 * r * r * r * 4 / 3);
你就成功用 printf 伪造了 cout 的输出,并且荣获聪明蛋子 AC。