牛客编程语言练习赛第三场
发布日期:2021-05-07 23:18:07 浏览次数:23 分类:原创文章

本文共 1856 字,大约阅读时间需要 6 分钟。

Powered by:AB_IN 局外人
没错,我来水博客了。。。



Py3


a, b = input().split(';')c, d, e = map(float, b.split(','))c += 1e-8d += 1e-8e += 1e-8print(f'The each subject score of  No. {a} is {c:.2f}, {d:.2f}, {e:.2f}.')

值得一说的是,f' {ans:.nf}'round(ans,n)在保留n位小数的方面,都会出现逢5不进的情况,原因就是float在储存小数时,会有误差。
怎么解决呢?
那就逼它记得误差更小。直接加上1e-8(当然也可以加的更小),让有效小数后面全为0。
C++


#include<stdio.h>int main(){
int a; float b,c,d; scanf("%d;%f,%f,%f",&a,&b,&c,&d); printf("The each subject score of No. %d is %.2f, %.2f, %.2f.",a,b,c,d);}

c++直接自动四舍五入,值得注意的是输入。当题目给的出现多余的符号时,直接按格式输入就好了。然后用floatdouble数据大但不准。



一定要善于找 格式行和列的关系!


#include <bits/stdc++.h>using namespace std;typedef long long ll;int i,j,k,n;int main(){
while(cin>>n) for(i=1;i<=n;i++){
for(j=1;j<i;j++) printf(" "); for(k=n;k>=i;k--) printf("* "); printf("\n"); } return 0;}


写的很正常,主要为了记一下杨辉三角。
C++


#include<bits/stdc++.h>typedef long long ll;using namespace std; ll a[35][35],n;int main(){
a[1][1]=1; for(int i=2;i<=35;i++){
for(int j=1;j<=35;j++){
a[i][j]=a[i-1][j-1]+a[i-1][j]; } } cin>>n; for(int i=1;i<=n;i++){
for(int j=1;j<=i;j++){
cout<<setw(5)<<a[i][j]; } cout<<endl; } return 0;}

Py3


n=int(input())a=[[0 for i in range(n)] for j in range(n)]#一定要先赋值列表for i in range(n):    for j in range(n):        if j==0 or j==n:            a[i][j]=1        else:            a[i][j]=a[i-1][j-1]+a[i-1][j]        if a[i][j]!=0:            print(f'{a[i][j]:5d}',end="")    print()

骚操作。


def f(x):    if x == 0:        return 1    return x * f(x-1) n = int(input())for i in range(n):    for j in range(i+1):        print(f'{f(i)//f(j)//f(i-j):5d}',end="")    print()

其实是有公式的。假设 行是i 列是j(从0开始),则a[i][j]=(i)!//(j)!//(i-j)!。即C(i,j)


就更3个水题。
其他的更水。
完结。

上一篇:牛客练习赛65水题
下一篇:北华大学第五届程序设计竞赛春季联赛水题

发表评论

最新留言

关注你微信了!
[***.104.42.241]2025年04月16日 02时16分21秒