Powered by:AB_IN 局外人
沒錯,我來水博客了。。。
B 學生基本信息輸入輸出
Py3
a, b = input().split(';')
c, d, e = map(float, b.split(','))
c += 1e-8
d += 1e-8
e += 1e-8
print(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++直接自動四捨五入,值得注意的是輸入。當題目給的出現多餘的符號時,直接按格式輸入就好了。然後用float
。double
數據大但不準。
G 翻轉金字塔圖案
一定要善於找 格式 與 行和列的關係!
#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;
}
J 楊輝三角
寫的很正常,主要爲了記一下楊輝三角。
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個水題。
其他的更水。
完結。