2024年6.7--6.17學習總結
一:java
看了向上轉型,向下轉型,繼承,super,構造器。
二:考試
6月6號考了英語期末,聽力填詞,聽力+個人總結,難度還好,但是早八,難受。
13號考了開卷的模式識別,一半的分都在抄書,剩下的是書上例題改點資料,還行。
15號考了六級,累死我了。
中間穿插著在複習計網,形式語言,做程式設計的pre,補計網作業,補機器智慧大作業,形式語言的作業,期末周人麻了。後面還有18號的毛概,24號的計網,26號的形式語言。
三:洛谷
6.9高精度加
string add(string str1,string str2){
string str;
int len1=str1.length();
int len2=str2.length();
int temp,cf;
if(len1>len2){
for(int i=0;i<len1-len2;i++){
str2='0'+str2;
}
}//先將長度補到一樣
for(int i=len1-1;i>=0;i--){
temp=str1[i]-'0'+str2[i]-'0'+cf;
cf=temp/10;
temp=temp%10;
str=char('0'+temp)+str;
}
if(cf==1){
str='1'+str;
}
return str;
}
6.16獎學金排序(過載cmp)
struct stu{
int order,ach[3]={0},tot;
};
bool cmp(const &stu a,const &stu b){
if(a.tot!=b.tot) return a.tot>b.tot;
else if(a.ach[0]!=b.ach[0]) return a.ach[0]>b.ach[0];
else return a.order<b.order;
}
int main(){
int n,temp,sign=5;
stu m[maxn],x;
//輸入資料省略
sort(m,m+n);
}
6.17選數(遞迴搜尋,素數判斷)
#include <bits/stdc++.h>
using namespace std;
int n,k,a[30],ans;
bool isprime(int a){
if(a==1) return 0;
for(int i=2;i*i<=a;i++){
if(a%i==0) return false;
}
return true;
}
void dfs(int temp,int sum,int startx){
//temp表示已經選了幾個數,sum表示現在總和,startx表示現在選的數
if(temp==k){
if(isprime(sum)){
ans++;
return;
}
}
for(int i=startx;i<n;i++){
dfs(temp+1,sum+a[i],i+1);
}
return;
}
int main(){
cin>>n>>k;
for(int i=0;i<n;i++){
cin>>a[i];
}
sort(a,a+n);
dfs(0,0,0);
cout<<ans;
}