解题思路:
正常求阶乘,再求和即可,,当然直接输出结果有时可以的,嗯,就是这样。。。(下面有彩蛋hhhhh)
注意事项:
注意计算时的逻辑,当然还有格式,,直接输出的话——需要注意格式:“2.74e+32\n”结果是这个样子的,,有的编译器会输出“2.74e+032\n”我也是醉了hhhhhhhhhh
参考代码:
正常标准代码如下:
#include<stdio.h> int main() { int i; double n = 1, sum = 0; for (i = 1; i <= 30; i++) { n = n * i; sum = sum + n; } printf("%.2e\n", sum); return 0; }
简单粗暴的强行过测试样例的代码如下:(不搞事情怎么能行hhhhhhhhh)
#include<stdio.h> int main() { printf("2.74e+32\n"); return 0; }
0.0分
12 人评分
。。。我遇到个问题有点好奇,没搞懂,就是我把你发的参考代码中double改为了long double后,在我电脑上的编译器运行后的输出是正确的,但提交oj就不给过。。。求大佬指点指点。
用cout怎么输出
踏雪无痕 2019-05-10 14:51:56 |
#include<iostream> using namespace std; double fact(int k) { double s=0,v=1; int i,j; for(i=1;i<=k;i++) { for(j=1,v=1;j<=i;j++) { v*=j; } s+=v; } return s; } int main(){ int n; n=30; cout.setf(ios::scientific); cout.precision(2); cout<<fact(n); return 0; }
虹山上峰 2021-11-13 10:42:54 |
这是c++吗,看着都比c难
ET 2020-04-19 12:43:59 |
编译器的问题,有的不兼容,(我都没用过long double)
全网第一白给Jhin 2020-04-19 21:17:28 |
了解了,奥力给