zoukankan      html  css  js  c++  java
  • 团体程序设计天梯赛-练习集(一)(string.find()、string.erase()、string.insert()、map容器、L1-002 (*)、L1-005、L1-063、L1-058、L1-054 (*)、L1-003 )

    L1-002 打印沙漏 (20分)

    https://pintia.cn/problem-sets/994805046380707840/problems/994805145370476544

    #include <cstdio>
    #include <vector>
    #include <cstring>
    #include <string>
    #include <cstdlib>
    #include <iostream>
    using namespace std;
    int main()
    {
    	vector<int> a;
    	a.push_back(1);
    	int n,s=1,c,p;
    	int i,j,k;
    	char chr;
    	cin>>n;
    	cin>>chr;
    	for(i=3;s+i*2<=n;i+=2)
    	{
    		s+=i*2;
    		a.push_back(i);
    	 }
    	  c=n-s;
    	  p=i-2;
    	  for(i=a.size()-1;i>=0;i--)
    	  {
    	  	 j=p-a[i];
    	  	 for(k=0;k<j/2;k++) cout<<" ";
    	  	 for(k=0;k<a[i];k++) cout<<chr;
    	  	 cout<<endl;
    	  }
    	  for(i=1;i<a.size();i++)
    	  {
    	  	j=p-a[i];
    	  	for(k=0;k<j/2;k++) cout<<" ";
    	  	for(k=0;k<a[i];k++) cout<<chr;
    	  	cout<<endl;
    	  }
    	  cout<<c<<endl;
    	  return 0;
    }
    

    L1-005 考试座位号 (15分)

    https://pintia.cn/problem-sets/994805046380707840/problems/994805140211482624

    法一(结构体):

    #include <cstdio>
    #include <cmath>
    #include <algorithm>
    #include <cstring>
    #include <string>
    #include <iostream>
    using namespace std;
    struct node{
    	char admin[20];
    	int seat1;
    	int seat2;
    }student[1010];
    int main()
    {
    	int n,m;
    	int findseat;
    	cin>>n;
    	for(int i=0;i<n;i++) {
    		cin>>student[i].admin;
    		cin>>student[i].seat1>>student[i].seat2;
    	}
    	cin>>m;
    	while(m--)
    	{
    		cin>>findseat;
    		for(int i=0;i<n;i++)
    		{
    			if(student[i].seat1==findseat) 
    			{
    		       cout<<student[i].admin<<" ";
    		       cout<<student[i].seat2<<endl;
    		       break;
    		    }
    		}
    	}
    	return 0;
    }  

    法二(map):

    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    #include<map>
    using namespace std;
    map<int ,pair<long long ,int> > m;//定义一个int(试机座位号)为键,pair<long long(准考证号),int(考试座位号)>作为值的map 
    int main(){
    	int n;
    	cin>>n;
    	for(int i = 0;i < n; i++){
    		long long zkz;
    		int sj,ks;
    		cin>>zkz>>sj>>ks;
    		//1.把准考证号和考试座位号赋值给对应的试机座位号 
    		m[sj].first = zkz; 
    		m[sj].second = ks;
    	}
    	int xw;
    	cin>>xw;
    	for(int i = 0; i < xw; i++){
    		int sj;
    		cin>>sj;
    		//2.通过map查找对应试机座位号的准考证号和考试座位号 
    		cout<<m[sj].first<<" "<<m[sj].second<<endl; 
    	}
    	return 0;
    }
    

    L1-063 吃鱼还是吃肉 (10分)

    https://pintia.cn/problem-sets/994805046380707840/problems/1111914599412858884

    复杂

    #include <cstdio>
    #include <cstring>
    #include <string>
    #include <cmath>
    #include <algorithm>
    #include <iostream>
    using namespace std;
    struct node{
    	int flag;  //性别 
    	int height; //身高 
    	int weight;  //体重 
    }baby[12];
    int main()
    {
    	int n;
    	cin>>n;
    	for(int i=0;i<n;i++) cin>>baby[i].flag>>baby[i].height>>baby[i].weight;
    	for(int i=0;i<n;i++)
    	{
    		if(baby[i].flag==1)  //boy
    		{
    			if(baby[i].height<130) {
    				if(baby[i].weight<27) cout<<"duo chi yu! duo chi rou!
    ";
    			    else if(baby[i].weight>27) cout<<"duo chi yu! shao chi rou!
    ";
    			    else cout<<"duo chi yu! wan mei!
    ";
    			}
    			else if(baby[i].height>130)
    			{
    				if(baby[i].weight<27) cout<<"ni li hai! duo chi rou!
    ";
    				else if(baby[i].weight>27) cout<<"ni li hai! shao chi rou!
    ";
    				else cout<<"ni li hai! wan mei!
    "; 
    			}
    			else if(baby[i].height==130)
    			{
    				if(baby[i].weight<27) cout<<"wan mei! duo chi rou!
    ";
    				else if(baby[i].weight>27) cout<<"wan mei! shao chi rou!
    ";
    				else cout<<"wan mei! wan mei!
    "; 
    			}
    		}
    		else if(baby[i].flag==0)  //girl
    		{
    			if(baby[i].height<129){
    				if(baby[i].weight<25) cout<<"duo chi yu! duo chi rou!
    ";
    			    else if(baby[i].weight>25) cout<<"duo chi yu! shao chi rou!
    ";
    			    else cout<<"duo chi yu! wan mei!
    ";
    			}
    			else if(baby[i].height>129){
    				if(baby[i].weight<25) cout<<"ni li hai! duo chi rou!
    ";
    				else if(baby[i].weight>25) cout<<"ni li hai! shao chi rou!
    ";
    				else cout<<"ni li hai! wan mei!
    ";
    			}
    			else if(baby[i].height==129){
    				if(baby[i].weight<25) cout<<"wan mei! duo chi rou!
    ";
    				else if(baby[i].weight>25) cout<<"wan mei! shao chi rou!
    ";
    				else cout<<"wan mei! wan mei!
    "; 
    			}
    		}
    	}
    	return 0;
    }  

    简易

    #include <cstdio>
    #include <iostream>
    using namespace std;
    int main()
    {
    	int n,heigh,weigh,sex;
    	cin>>n;
    	while(n--)
    	{
    		int flag=0;
    		cin>>sex>>heigh>>weigh;
    		if(sex==0) flag=1;
    		if(heigh<130-flag) cout<<"duo chi yu! ";
    		if(heigh==130-flag) cout<<"wan mei! ";
    		if(heigh>130-flag) cout<<"ni li hai! ";
    		if(weigh<27-flag*2) puts("duo chi rou!");
    		if(weigh==27-flag*2) puts("wan mei!");
    		if(weigh>27-flag*2) puts("shao chi rou!");
    	}
    	return 0;
    }

     

    L1-058 6翻了 (15分)

    https://pintia.cn/problem-sets/994805046380707840/problems/1111914599408664577

    string类find函数,erase函数,insert函数

    find函数 https://blog.csdn.net/shujh_sysu/article/details/52026108      https://blog.csdn.net/OpenStack_/article/details/88429962

    erase函数,insert函数 https://blog.csdn.net/zxy131072/article/details/94548629

    #include <cstdio>
    #include <cstring>
    #include <string>
    #include <cmath>
    #include <algorithm>
    #include <iostream>
    using namespace std;
    int main()
    {
    	string str;
    	int count,pos=0;
    	getline(cin,str);
    	int len=str.length();
    	string str1="6666";
    	while(str.find(str1,pos)!=string::npos)
    	{
    		count=0;
    		int first=str.find(str1);
    		for(int i=str.find(str1);;i++)
    		{
    			if(str[i]=='6') count++;
    			else break;
    		}
        if(count>9) {
        	str.erase(first,count);
        	str.insert(first,"27");
    	}
    	else if(count>3){
    		str.erase(first,count);
    		str.insert(first,"9");
    	} 
    	}
        cout<<str<<endl;
    	return 0;
    }

    L1-054 福到了 (15分)

    https://pintia.cn/problem-sets/994805046380707840/problems/994805076512587776

    #include <cstdio>
    #include <cstring>
    #include <string>
    #include <cmath>
    #include <algorithm>
    #include <iostream>
    using namespace std;
    int main()
    {
    	int n;
    	int flag=1;
    	char chr;
    	char chr1[101][101];
    	cin>>chr>>n;
    	getchar();     //这个没写的话也是错误的     
    	for(int i=1;i<=n;i++)
    	{
    		for(int j=1;j<=n;j++)
    		{
    			chr1[i][j]=getchar(); //开始写成cin>>chr1[i][j]死活过不了。不过这里也可以写成scanf("%c",&chr1[i][j]);
    			if(chr1[i][j]!=' ') chr1[i][j]=chr;
    		}
    		getchar();      //开始没写这个,不写就是错误的
    	}
    	for(int i=1;i<=n&&flag;i++)    //flag放这挺好
    	{
    		for(int j=1;j<=n;j++)
    		{
    			if(chr1[i][j]!=chr1[n+1-i][n+1-j]) 
    			{
    				flag=0;
    				break;
    			}
    		}
    	}
    	if(flag==1) cout<<"bu yong dao le
    ";
    		for(int k=n;k>=1;k--)
    		{
    			for(int s=n;s>=1;s--)
    			{
    				cout<<chr1[k][s];
    			}
    			cout<<endl;
    		}
    	return 0;
    }
    

      

    L1-003 个位数统计 (15分)

    https://pintia.cn/problem-sets/994805046380707840/problems/994805143738892288

    #include <cstdio>
    #include <cstring>
    #include <string>
    #include <cstdlib>
    #include <cmath>
    #include <algorithm>
    #include <iostream>
    using namespace std;
    int main()
    {
    	char chr[1010];
    	int a[10]={0};
    	cin>>chr;
    	for(int i=0;i<strlen(chr);i++)
    	{
    		int temp=chr[i]-'0';
    		a[temp]++;
    	}
    	for(int j=0;j<10;j++)
    	{
    		if(a[j]!=0) cout<<j<<":"<<a[j]<<endl;
    	}
    	return 0;
    }
    天晴了,起飞吧
  • 相关阅读:
    javascript 自定义事件
    javascript 实现HashTable(哈希表)
    NHibernate输出SQL语句
    Asp.net MVC Comet推送
    MySQL 数据备份与还原
    Mysql -- 慢查询
    cookie 的HttpOnly 和 Secure 属性
    Ubuntu -- 反射shell nc
    docker 访问宿主机网络
    k8s 配置文件 详解
  • 原文地址:https://www.cnblogs.com/jianqiao123/p/12050765.html
Copyright © 2011-2022 走看看