MT28. 手机号
描述
输入描述
第一行一个数 T ,接下里 T 行每行一个手机号,输入的手机号只由数字构成。输出描述
输出 T 行,对每个手机号,如果满足题面定义, 电信号码输出 China Telecom 联通号码输出 China Unicom 移动号码输出 China Mobile Communications 如果不符合题面定义则输出 -1示例1
输入:
5 13312345678 18687654324 18277748494 15898494958 45364
输出:
China Telecom China Unicom China Mobile Communications -1 -1
C 解法, 执行用时: 2ms, 内存消耗: 228KB, 提交时间: 2019-01-14
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char head[4]; char s[21]; int tel_lab; int T; int i,j; int num_count; int len; scanf("%d",&T); for(i=0;i<T;i++) { tel_lab = 0; num_count = 0; memset(s,0,sizeof(s)); memset(head,0,sizeof(head)); scanf("%s",&s); len = strlen(s); if(len!=11) { printf("-1\n"); continue; } for(j=0;j<3;j++) head[j] = s[j]; if(strcmp("133",head)==0||strcmp("153",head)==0||strcmp("180",head)==0||strcmp("181",head)==0||strcmp("189",head)==0) tel_lab = 1; else if(strcmp("130",head)==0||strcmp("131",head)==0||strcmp("155",head)==0||strcmp("185",head)==0||strcmp("186",head)==0) tel_lab = 2; else if(strcmp("135",head)==0||strcmp("136",head)==0||strcmp("150",head)==0||strcmp("182",head)==0||strcmp("188",head)==0) tel_lab = 3; for(j=3;j<11;j++) { if(s[j]>='0'&&s[j]<='9') num_count++; else continue; } if(num_count==8&&tel_lab==1) printf("China Telecom\n"); else if(num_count==8&&tel_lab==2) printf("China Unicom\n"); else if(num_count==8&&tel_lab==3) printf("China Mobile Communications\n"); else printf("-1\n"); } }
C 解法, 执行用时: 2ms, 内存消耗: 328KB, 提交时间: 2021-09-19
#include<stdio.h> #include<string.h> int main() { char a[1000]; int n,i; while (scanf("%d",&n)!=EOF) { getchar(); for(i=0;i<n;i++) { gets(a); if(strlen(a)!=11) printf("-1\n"); else { if((a[1]=='3'&&a[2]=='3')||(a[1]=='5'&&a[2]=='3')||(a[1]=='8'&&a[2]=='0')||(a[1]=='8'&&a[2]=='1')||(a[1]=='8'&&a[2]=='9')) { printf("China Telecom\n"); } else if((a[1]=='3'&&a[2]=='0')||(a[1]=='3'&&a[2]=='1')||(a[1]=='5'&&a[2]=='5')||(a[1]=='8'&&a[2]=='5')||(a[1]=='8'&&a[2]=='6')) { printf("China Unicom\n"); } else if((a[1]=='3'&&a[2]=='5')||(a[1]=='3'&&a[2]=='6')||(a[1]=='5'&&a[2]=='0')||(a[1]=='8'&&a[2]=='2')||(a[1]=='8'&&a[2]=='8')) { printf("China Mobile Communications\n"); } else printf("-1\n"); } } } return 0; }