520闲来无事,无意间看到这个比赛,就去玩玩,很久没写算法,基本忘了差不多了
7-1 自动编程 (5 分) 输出语句是每个程序员首先要掌握的语句。Python 的输出语句很简单,只要写一个 print(X) 即可,其中 X 是需要输出的内容。 本题就请你写一个自动编程机,对任何一个要输出的整数 N,给出输出这个整数的 Python 语句。
输入给出一个不超过 10 的5次方正整数
在一行中打印输出这个整数的 Python 语句,其中不包含任何空格。
520
print(520)
#include<iostream>
using namespace std;
int main(){
int a;
cin>>a;
cout<<"print("<<a<< ")"<<endl;
}
#include<iostream>
using namespace std;
int main(){
int m,n,s;
cin>>n>>m>>s;
int sum = m*s;
int k = n/2;
if(k>sum){
cout<<"hai sheng "<<n - sum<<" mi! jia you ya!"<<endl;
}else{
cout<<"hai sheng "<<n - sum<<" mi! chong ya!"<<endl;
}
}
#include<iostream>
#include<string>
using namespace std;
int main(){
string a;
cin>>a;
for(int i=1;i<=520;i++){
cout<<a<<endl;
}
}
以上三道算是水题了,来了就得
#include<iostream>
#include<string>
using namespace std;
char key;
//判断string中是否存在关键数字
bool is_right(string a){
for(int i=0;i<a.length();i++){
if(a[i] == key){
return true;
}
}
return false;
}
int main(){
int num,i;
cin>>num;
cin>>key;
int sum=0;//不符合楼层综合
for( i=1;i<=num;i++){
string tmp = to_string(i);//int转为string
if(is_right(tmp)){
sum++;
}
}
cout<<num -sum<<endl;
}
快速读题从样例读取大概意思,从1-n个数中,除去有d的忌讳数字。第一感觉遍历,直接遍历从1-n,对每一个数字进行判断,获取每个数字的个位数,十位数…可以使用%10。但这里我直接存储为string类型,is_right()函数判断是否是忌讳数字d,主函数一层for循环。时间复杂度不太好计算,往后数越大,判断循环的也越大。但是基本还是o(n)
#include<iostream>
#include<string>
#include<math.h>
using namespace std;
int main(){
int a;cin>>a;
int sum1 = a+1;
int sum2 = a;
int p=0,q=0;
int i;
for(i = 0;;i++){
// if(pow(i,2))
for(int j =1;j<=sum1;j++){
p+=pow(i+j,2);
}
for(int x=1;x<=sum2;x++){
q+=pow(i+sum1+x,2);
}
if(p==q){
break;
}
p=q=0;
}
//i等于起步数少一
// cout<<i+1<<"^2"<<i+2
for(int l=1;l<=sum1-1;l++){
cout<<i+l<<"^2"<<" + ";
}
cout<<i+sum1<<"^2"<<" ="<<endl;
for(int l=1;l<=sum2-1;l++){
cout<<i+sum1+l<<"^2"<<" + ";
}
cout<<i+sum1+sum2<<"^2";
}
这个是没有ac的。思路还是暴力循环,直接计算等式两边的值存储到p,q中。后面两个测试点没通过,显示答案错误。一开始我还懵了。意料中的错误应该是超时。后面才想明白,应该是溢出了,p,q中的数太大,存不下去导致判断p==q时出现了错误。改成longlong 即可
废江博客 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 转载请注明原文链接:pat 520钻石争霸赛