又回来了,先总结一下前两天干什么去了:
装了一下官方版的kali2.0和一个完整版的kali2.0,然后更新了一下我的老版本的kali内核。为什么呢?还不是为了安装W3af,太难了,装了3天都没装上,本来已经放弃了就打算直接用console界面,谁知道一start它又抱了一堆错,真的要吐血了。W3AF果断放弃,岂可休。但是装机的过程倒是越发熟练了,发现官方版的kali图形界面不是很兼容,老是有闪屏,而且收藏夹里的网站也是打不开的(虽然这些网站在火狐书签栏里都有),后来也摸了几个比较感兴趣的软件,新版的软件库更加丰富了,好多软件还是要翻墙,好累。而且发现有的还是不能直接用,要装好多的依赖。一些老软件也不见了要自己安装,特别是OWASP,还好安装倒是挺简单的。试了一下kali-undercover功能,感觉它不是很稳定,其中有一次undercover后菜单栏都没有了。。。。学了一下华为云的使用,考虑到我有一个弹性服务器ECS,打算配置一个Linux的小博客,装完了apache2,php,mysql,word press,谁知道一打开界面,提示word press不兼容php,吐血。爬了两天回来写写代码散散心。
1.6编程基础之一维数组(15题)
01:与指定数字相同的数的个数
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int num[102]={};
for(int i=0;i<n;++i)cin>>num[i];
int m,count=0;cin>>m;
for(int i=0;i<n;++i)
{
if(num[i]==m)++count;
}
cout<<count;
return 0;
}
02:陶陶摘苹果
#include<iostream>
using namespace std;
int main()
{
int num[102]={};
for(int i=0;i<10;++i)cin>>num[i];
int m,count=0;cin>>m;
for(int i=0;i<10;++i)
{
if(num[i]<=m+30)++count;
}
cout<<count;
return 0;
}
03:计算书费
#include<iostream>
using namespace std;
int main()
{
double temp,num[10]={28.9,32.7,45.6,78,35,86.2,27.8,43,56,65},sum=0;
for(int i=0;i<10;++i)
{
cin>>temp;
sum+=temp*num[i];
}
printf("%.1f",sum);
return 0;
}
04:数组逆序重放
#include<iostream>
using namespace std;
int main()
{
int n,num[102]={};
cin>>n;
for(int i=0;i<n;++i)
{
cin>>num[i];
}
cout<<num[n-1];
for(int i=n-2;i>=0;--i)
{
cout<<" "<<num[i];
}
return 0;
}
05:年龄与疾病
#include<iostream>
using namespace std;
int main()
{
int n,temp;
double num[4]={};
cin>>n;
for(int i=0;i<n;++i)
{
cin>>temp;
if(0<=temp&&temp<=18)
{
num[0]++;
}
else if(temp<=35)
{
num[1]++;
}
else if(temp<=60)
{
num[2]++;
}
else
{
num[3]++;
}
}
for(int i=0;i<4;++i)
{
printf("%.2f%%
",num[i]/n*100.0);
}
return 0;
}
06:校门外的树
#include<iostream>
using namespace std;
int tree[10001];
int main()
{
int L,M;
cin>>L>>M;
int a,b;
for(int i=1;i<=M;++i)
{
cin>>a>>b;
// cout<<a<<","<<b<<endl;
for(int j=a;j<=b;++j)
{
tree[j]=1;
// cout<<j<<endl;
}
}
int count=0;
for(int i=0;i<=L;++i)
{
if(tree[i]==0)
{
++count;
// cout<<i<<endl;
}
}
cout<<count;
return 0;
}
07:有趣的跳跃
#include<iostream>
#include<cmath>
#include <algorithm>
using namespace std;
int tree[10001];
int main()
{
int n;
int num[3001]={},temp[3001];
cin>>n;
cin>>temp[0];
for(int i=1;i<n;++i)
{
cin>>temp[i];
num[i-1]=abs(temp[i]-temp[i-1]);
}
sort(num,num+n);
int flag=1;
for(int i=0;i<n-2;++i)
{
if((num[i+1]-num[i])!=1)
{
flag=0;break;
}
}
if(flag)
{
cout<<"Jolly";
}
else
{
cout<<"Not jolly";
}
return 0;
}
08:石头剪刀布
#include<iostream>
#include<cmath>
#include <algorithm>
using namespace std;
int tree[10001];
bool Cmp(int a,int b)
{
if(a==0&&b==2)
{
return 1;
}
else if(a==2&&b==5)
{
return 1;
}
else if(a==5&&b==0)
{
return 1;
}
else
{
return 0;
}
}
int main()
{
int n,na,nb;
int ca=0,cb=0;
int A[101]={},B[101]={};
cin>>n>>na>>nb;
for(int i=0;i<na;++i)cin>>A[i];
for(int i=0;i<nb;++i)cin>>B[i];
for(int i=0;i<n;++i)
{
if(Cmp(A[i%na],B[i%nb])) ca++;
if(Cmp(B[i%nb],A[i%na])) cb++;
}
if(ca>cb)
{
cout<<"A";
}
else if(cb>ca)
{
cout<<"B";
}
else
{
cout<<"draw";
}
return 0;
}
09:向量点积计算
#include<iostream>
#include<cmath>
#include <algorithm>
using namespace std;
int main()
{
int n,sum=0;
int a[1001]={},b[1001]={};
cin>>n;
for(int i=0;i<n;++i)cin>>a[i];
for(int i=0;i<n;++i)cin>>b[i];
for(int i=0;i<n;++i)
{
sum+=a[i]*b[i];
}
cout<<sum;
return 0;
}
10:大整数加法
#include<iostream>
#include<cmath>
#include<algorithm>
#include<string>
using namespace std;
int res[20000];
int ada[20000],adb[20000];
int to_Int(char a)
{
return a-'0';
}
int main()
{
string a,b;
int index=0;
cin>>a>>b;
if(a=="0"&&b=="0")
{
cout<<0;
return 0;
}
int start=max(a.length(),b.length());
for(int i=a.length()-1,j=0;i>=0;--i,++j)ada[j]=to_Int(a[i]);
for(int i=b.length()-1,j=0;i>=0;--i,++j)adb[j]=to_Int(b[i]);
for(int i=0;i<start;++i,++index)
{
res[index]=res[index]+ada[i]+adb[i];
if(res[index]>9)
{
res[index]-=10;
res[index+1]++;
}
}
int i;
for(i=index;res[i]==0;--i);
for(;i>=0;--i)cout<<res[i];
return 0;
}
11:大整数减法
#include<iostream>
#include<cmath>
#include<algorithm>
#include<string>
using namespace std;
int res[20000];
int ada[20000],adb[20000];
int to_Int(char a)
{
return a-'0';
}
int main()
{
string a,b;
int index=0;
cin>>a>>b;
int start=max(a.length(),b.length());
for(int i=a.length()-1,j=0;i>=0;--i,++j)ada[j]=to_Int(a[i]);
for(int i=b.length()-1,j=0;i>=0;--i,++j)adb[j]=to_Int(b[i]);
for(int i=0;i<start;++i,++index)
{
res[index]=ada[i]-adb[i];
if(res[index]<0)
{
int indexa=i;
res[index]+=10;indexa++;
ada[indexa]--;
while(ada[indexa]<0)
{
ada[indexa]+=10;
indexa++;
ada[indexa]--;
}
}
// cout<<">>"<<res[index]<<endl;
}
int i,flag=1;
for(i=index;res[i]==0;--i);
for(;i>=0;--i)
{
cout<<res[i];flag=0;
}
if(i<0&&flag)cout<<0;
return 0;
}
12:计算2的N次方
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int n;cin>>n;
printf("%.0lf",pow(2,n));
return 0;
}
13:大整数的因子
#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
int main()
{
string c;
int index=0,flag=0;
cin>>c;
for(int i=2;i<=9;++i)
{
int index=0;
for(int j=0;j<c.length();++j)
{
index=(index*10+c[j]-'0')%i;
}
if(!index)
{
flag=1;cout<<i<<" ";
}
}
if(!flag)
{
cout<<"none";
}
return 0;
}
14:求10000以内n的阶乘[这里是先把每一位算出来在计算进位]
#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
int ans[100000010];
int main()
{
int n,j,add=0,index=1;
cin>>n;
ans[1]=1;
for(int i=2;i<=n;++i)
{
for(int j=1;j<=index;++j)
{
ans[j]*=i;
}
for(int j=1;j<=index;++j)
{
if(ans[j]>=10)
{
ans[j+1]+=ans[j]/10;
ans[j]%=10;
}
}
while(ans[index+1]>0)
{
index++;
ans[index+1]=ans[index]/10;
ans[index]%=10;
}
}
for(int i=index;i>=1;--i) cout<<ans[i];
return 0;
}
15:阶乘和
#include<iostream>
using namespace std;
#define N 100000
int a[N],n,tot=1,lena=1,ans[N];
int main()
{
cin>>n;
a[1]=1;ans[1]=1;
for(int i=2;i<=n;i++)
{
for(int j=1;j<=lena;j++)a[j]*=i;
for(int j=1;j<=lena;j++)
{
if(a[j]>9)
{
a[j+1]+=a[j]/10;
a[j]%=10;
if(j==lena)lena++;
}
}
tot=max(lena,tot);
for(int j=1;j<=tot;j++)
ans[j]+=a[j];
for(int j=1;j<=tot;j++)
if(ans[j]>9)
{
ans[j+1]++;
ans[j]-=10;
if(tot==j)tot++;
}
}
for(int i=tot;i>=1;i--)cout<<ans[i];
cout<<endl;
}