题主从今天开始,认真刷题,学好python的同时,加深对C++的理解,用两种方式写题,准备蓝桥杯,共勉
目录
AcWing 89. a^b 快速幂
//python代码
def power(a,b,p):
tmp=1
while b:
if b&1:
tmp=tmp*a%p
a=a*a%p
b>>=1
return tmp%p
a = input().split()
print(str(power(int(a[0]), int(a[1]), int(a[2]))))
//C++代码
#include <bits/stdc++.h>
using namespace std;
//求 a 的 b 次方对 p 取模的值。
int main(){
long long a,b,p,tmp=1;
cin>>a>>b>>p;
while(b){
if(b&1){
tmp=tmp*a%p;
}
a=a*a%p;
b>>=1;
}
tmp%=p;
cout<<tmp<<endl;
return 0;
}
AcWing 785. 快速排序
python代码
算法1
直接调用已有函数
n=int(input())
a=list(map(int,input().split()))
a.sort()
for i in a:
print(i,end=’ ‘)
时间复杂度 1929 ms
python 代码
python代码
算法2
自己写函数模板
def quicksort(q, l, r):
if l>=r:
return
x = q[(l+r)//2]
i, j = l-1, r+1
while i < j:
while True:
i+=1
if q[i]>=x:
break
while True:
j-=1
if q[j]<=x:
break
if i < j:
q[i], q[j] = q[j], q[i]
quicksort(q, l, j)
quicksort(q, j+1, r)
n=int(input())
a=list(map(int,input().split()))
quicksort(a,0,len(a)-1)
for i in a:
print(i,end=’ ‘)
时间复杂度 2050 ms
python 代码
作者:namelessstory
AcWing 717. 简单斐波那契
//python代码
class Solution(object):
n=eval(input())
a=[0,1,1]
for i in range (2,n):
a.append(a[i]+a[i-1])
for i in range(0,n):
print(a[i],end=' ')
AcWing 604. 圆的面积python版本
python
PI=3.14159
R=float(input())
A=PIRR
print(“A=%.4f”%A)
ACWING 1. A + B
C++版本
#include <bits/stdc++.h>
using namespace std;
int main(){
int A,B;
cin>>A>>B;
cout<<A+B<<endl;
return 0;
}
//python版本
A,B=map(int,input().split())
print(A+B)
608. 差
//C++版本
#include <bits/stdc++.h>
using namespace std;
int main(){
//读取四个整数 A,B,C,D,并计算 (A×B-C×D) 的值。
int X,A,B,C,D;
cin>>A>>B>>C>>D;
X=(A*B-C*D);
cout<<"DIFERENCA = "<<X<<endl;
}
#python版本
A,B,C,D=(int(input()) for i in range(4))
X=A*B-C*D
print("DIFERENCA = %d"%X)
604. 圆的面积
//C++版本
#include <bits/stdc++.h>
using namespace std;
#define PI 3.14159
int main(){
//计算圆的面积的公式定义为 A=πR2
//保留四位小数 输出格式为 A=X
//π的取值为 3.14159。
double R,A;
cin>>R;
A=PI*R*R;
printf("A=%.4lf",A);
}
#python版本
PI=3.14159
R=float(input())
A=PI*R*R
print("A=%.4f"%A)
606. 平均数1
//C++版本
#include <bits/stdc++.h>
using namespace std;
int main(){
//读取两个浮点数 A 和 B 的值,对应于两个学生的成绩。
double B,A,C;
cin>>A>>B;
C=(3.5*A+7.5*B)/11;
printf("MEDIA = %.5f",C);
return 0;
}
#python版本
A,B=(float(input()) for i in range(2))
C=(3.5*A+7.5*B)/11;
print("MEDIA = %.5f"%C);
609. 工资
//C++版本
#include <bits/stdc++.h>
using namespace std;
int main(){
//输入包含两个整数和一个浮点数,分别代表员工编号,工作时长以及时薪。
double Y;
int X,Time;
cin>>X>>Time>>Y;
cout<<"NUMBER = "<<X<<endl;
printf("SALARY = U$ %.2f\n",Time*Y);
return 0;
}
#python版本
X,Time=(int(input()) for i in range(2))
Y=(float)(input())
print("NUMBER = %d"%X)
print("SALARY = U$ %.2f"%(Time*Y));
615. 油耗
#python版本
X=int(input())
Y=float(input())
Speed=X/Y;
print("%.3f km/l"%Speed);
//C++版本
#include <bits/stdc++.h>
using namespace std;
int main(){
//输入共两行,第一行包含整数 X,表示行驶总路程。第二行包含保留一位小数的浮点数 Y,表示消耗的油量。
double Y,Speed;
int X;
cin>>X>>Y;
Speed=X/Y;
printf("%.3f km/l",Speed);
return 0;
}
616. 两点间的距离
//C++版本
#include <bits/stdc++.h>
using namespace std;
int main(){
//输入共两行,每行包含两个双精度浮点数 xi,yi,表示其中一个点的坐标。输入数值均保留一位小数
double x1,x2,y1,y2;
double dis;
cin>>x1>>y1>>x2>>y2;
dis=sqrt(pow(x1-x2,2)+pow(y1-y2,2));
printf("%.4f\n",dis);
return 0;
}
#python版本
import math
x1,y1=map(float,input().split())
x2,y2=map(float,input().split())
dis=math.sqrt(pow(x1-x2,2)+pow(y1-y2,2))
print("%.4f"%dis)
653. 钞票
//C++版本
#include <bits/stdc++.h>
using namespace std;
int main(){
//钞票的可能面值有 100,50,20,10,5,2,1
int dolar;
int money[8]={100,50,20,10,5,2,1,};
int i;
cin>>dolar;
//从大到小排序即可实现钞票数量少
printf("%d\n",dolar);
for(i=0;i<7;i++){
printf("%d nota(s) de R$ %d,00\n",dolar/money[i],money[i]);
dolar%=money[i];
}
return 0;
}
#python版本
money=[100,50,20,10,5,2,1]
dolar=int(input())
#从大到小排序即可实现钞票数量少
print(dolar)
for i in range(7) :
print("%d nota(s) de R$ %d,00"%(dolar/money[i],money[i]))
dolar%=money[i]
654. 时间转换
//C++版本
#include <bits/stdc++.h>
using namespace std;
int main(){
//hours:minutes:seconds
int time,hours,minutes,seconds;
cin>>time;
hours=time/(60*60);
time-=hours*60*60;
minutes=time/60;
time-=minutes*60;
seconds=time;
printf("%d:%d:%d",hours,minutes,seconds);
return 0;
}
#python版本
time=int(input())
hours=int(time/(60*60))
time=int(time-hours*60*60)
minutes=int(time/60)
time=time-minutes*60
seconds=int(time)
print("%d:%d:%d"%(hours,minutes,seconds))