1.四舍五入 先转化为浮点型 然后加0.5 然后再取int 正好四舍五入
2.第三次吃这个亏了 = 打成 == 使得根本就没有起到赋值的作用
3.读入一整行的做法
4.pyhton把多个空格当成一个分割(不加任何参数)
分割多符号的话 引入import re 之后 ans=re.split('(\W+)', ans) \w表示的是所有非字母字符。
拷贝列表的话 直接赋值是浅拷贝 拷贝的是地址 一个变都变
若要深拷贝的话 import copy t=copy.deepcopy(ans)
5.还是说先存起来和读入一个处理一个的区别
就比如今天做的题 PTA | 程序设计类实验辅助教学平台
先开的vector b 用来放每次的数据 但是没有注意到的是如果计算结果是0的话
那么 b里面就不会有任何数据 也就不会放进去0了 但是反观读入一个处理一个 就会非常容易的处理 因为是当下立断的 没有存这个过程。
#include <iostream>
#include <vector>
using namespace std;
const int N=1010;
int a[N];
vector<int>b;
int a1,a2,n;
int main(){
cin>>a1>>a2>>n;
// for(int i=0;i<=1;i++) a.push_back(0);
a[0]=a1,a[1]=a2;
int k=2;
if(n==1) cout<<a[0];
else if(n==2) cout<<a[0]<<" "<<a[1];
else cout<<a[0]<<" "<<a[1]<<" ";
for(int i=2;i<n;i++){
int t=a[i-1]*a[i-2];
int temp=t;
while(temp){
int x=temp%10;
temp/=10;
b.push_back(x);
}
if(t!=0) for(int j=b.size()-1;j>=0;j--) a[k++]=b[j];
else a[k++]=0;//没有else就错了 存不进去0
b.clear();
if(i!=n-1)cout<<a[i]<<' ';
else cout<<a[i];
}
// for(int i=1;i<=n;i++) cout<<a[i]<<" ";
return 0;
}
6.还是要注意 空格的坑 末尾不能有空格