强化阶段 Day 5 算法笔记 3.6 字符串处理(2)

目录

1.换个格式输出整数

2.个位数统计

3.查验身份证

4.写出这个数

5.说反话

6.Dating


1.换个格式输出整数

#include<cstdio>
#include<vector>
#include<cstring>
#include<stack>
#include<set>
#include<queue>
#include<algorithm>
using namespace std;

int main(){
	
	int n;
	scanf("%d",&n);
	
	int x;
	x=n/100;
	n%=100;
	for(int i=0;i<x;i++){
		printf("B");
	}
	x=n/10;
	n%=10;
	for(int i=0;i<x;i++){
		printf("S");
	}
	for(int i=1;i<=n;i++){
		printf("%d",i);
	}
	
	return 0;
}

2.个位数统计

#include<cstdio>
#include<vector>
#include<cstring>
#include<stack>
#include<set>
#include<queue>
#include<algorithm>
using namespace std;

int main(){
	
	char str[1003];
	scanf("%s",str);
	int martix[15]={0};
	for(int i=0;i<strlen(str);i++){
		martix[str[i]-'0']++;
	}
	for(int i=0;i<=9;i++){
		if(martix[i]!=0){
			printf("%d:%d\n",i,martix[i]);
		}
	}
	
	return 0;
}

3.查验身份证

#include<cstdio>
#include<vector>
#include<cstring>
#include<stack>
#include<set>
#include<queue>
#include<algorithm>
using namespace std;

int q[18] = {7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
int m[12] = {1,0,0,9,8,7,6,5,4,3,2};
int main(){
	
	bool flag=true;
	int n;
	scanf("%d",&n);
	char str[20];
	for(int i=0;i<n;i++){
		int ans=0;
		scanf("%s",str);
		getchar();
		for(int i=0;i<=16;i++){
			ans+=(str[i]-'0')*q[i];
//			printf("%d\n",ans);
			ans%=11;
//			printf("%d\n",ans);
		}
		if(ans==2){
			if(str[17]!='X'){
				flag=false;
				printf("%s\n",str);
			}
		}else{
			if(m[ans]!=str[17]-'0'){
//				printf("%d %d\n",m[ans],str[17]-'0');
				flag=false;
				printf("%s\n",str);
			}
		}
	}
	if(flag==true){
		printf("All passed");
	}
	
	return 0;
}

4.写出这个数

下面这个方法可以把一个整数分解出来

#include<cstdio>
#include<vector>
#include<cstring>
#include<stack>
#include<set>
#include<queue>
#include<algorithm>
using namespace std;


char martix[11][11] ={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};

int main(){
	
	char str[102];
	scanf("%s",str);
	int ans=0;
	for(int i=0;i<strlen(str);i++){
		ans+=str[i]-'0';
	}
	
	int a[15]={0},num=0;
	while(ans!=0){
		a[num++] = ans%10;
//		printf("%d\n",ans%10);
		ans/=10;
	}
	
	for(int i=num-1;i>=0;i--){
		printf("%s",martix[a[i]]);
		if(i!=0){
			printf(" ");
		}
	}
	
	return 0;
}

5.说反话

#include<cstdio>
#include<vector>
#include<cstring>
#include<stack>
#include<set>
#include<queue>
#include<algorithm>
using namespace std;


char martix[83][83] ={};

int main(){
	
	int num=0;
	while(scanf("%s",&martix[num])!=EOF){
		num++;
	}
	for(int i=num-1;i>=0;i--){
		printf("%s",martix[i]);
		if(i!=0) printf(" ");
	}
	
	return 0;
}
#include<cstdio>
#include<vector>
#include<cstring>
#include<stack>
#include<set>
#include<queue>
#include<algorithm>
using namespace std;


char martix[83][83] ={};

int main(){
	
	char str[83];
	fgets(str,83,stdin);
	int row=0,col=0;
	for(int i=0;i<strlen(str)-1;i++){
//		printf("%c\n",str[i]);
		if(str[i]!=' '){
			martix[row][col++]=str[i];
//			printf("%s\n",martix[row]);
		}else{
			row+=1;
			col=0;
		}
	}
	for(int i=row;i>=0;i--){
		printf("%s",martix[i]);
		if(i!=0) printf(" ");
	}
	
	return 0;
}

6.Dating

有两个测试点无法通过

#include<cstdio>
#include<vector>
#include<cstring>
#include<stack>
#include<set>
#include<queue>
#include<algorithm>
using namespace std;

int main(){
	
	char week[7][5] = {"MON","TUE","WED","THU","FRI"};
	char str1[70],str2[70],str3[70],str4[70];
//	scanf("%s",str1);
//	scanf("%s",str2);
//	scanf("%s",str3);
//	scanf("%s",str4);
	fgets(str1,70,stdin);
	fgets(str2,70,stdin);
	fgets(str3,70,stdin);
	fgets(str4,70,stdin);
	int len1=strlen(str1);
	int len2=strlen(str2);
	int len3=strlen(str3);
	int len4=strlen(str4);
	int i;
	for(i=0;i<len1&&i<len2;i++){
		if(str1[i]==str2[i]&&str1[i]>='A'&&str1[i]<='G'){
			printf("%s ",week[str1[i]-'A']);
			break;
		}
	}
	for(i++;i<len1&&i<len2;i++){
		if(str1[i]==str2[i]){
			if(str1[i]>='0'&&str1[i]<='9'){
				printf("%02d:",str1[i]-'0');
				break;
			}else if(str1[i]>='A'&&str1[i]<='N'){
				printf("%02d:",str1[i]-'A'+10);
				break;
			}
		}
	}
	for(i=0;i<len3&&i<len4;i++){
		if(str3[i]==str4[i]){
			if((str3[i]>='A'&&str3[i]<='Z')||(str3[i]>='a'&&str3[i]<='z')){
				printf("%02d",i);
				break;
			}
		}
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/aixiaoxiao13/article/details/121775259