2014华为武汉上机试题一:手机电池余量

这篇博客介绍了两道华为上机考试的编程题目。第一题涉及用C/C++编写程序,根据电量百分比用符号表示手机电池电量。第二题则是寻找具有最多字母重复数的女士姓名,实现“夫妻相”的匹配。博客提供了两种不同的解决方案,并附带了样例输入和输出。
摘要由CSDN通过智能技术生成


1. 手机电池余量 
描述: 自从有了智能手机,时刻都要关心手机的电量。你的任务很简单,用程序打印符号来表示当前手机的电量。
用10行和10列来表示电池的电量,同时在外围加上边框,每一行表示10%的电量。
假设还有60%的电量,则显示如下:
+----------+
|----------|
|----------|
|----------|
|----------|
|++++++++++|
|++++++++++|
|++++++++++|
|++++++++++|
|++++++++++|
|++++++++++|
+----------+
运行时间限制: 无限制 
内存限制: 无限制 
输入: 多组测试数据,第一行为测试数据组数N(N<10),紧接着是N行,每行一个数,表示电量,这个数值可能是0,10,20 ,30,40,50,60,70,80,90,100
输出: 每组数据输出一个电池的电量,每组数据之间用15个“=”隔开
样例输入: 2
50
0

 

//通过华为测

[cpp]
  1. #include <iostream>  
  2. #include <string>  
  3. using namespace std;  
  4. int main()  
  5. {  
  6.     string str1="+----------+";  
  7.     string str2="|----------|";  
  8.     string str3="|++++++++++|";  
  9.     string str4="===============";  
  10.     int n,a[10];  
  11.     cin >> n ;  
  12.     int i,j;  
  13.     for(i=0;i<n;i++)  
  14.         cin >> a[i];  
  15.     for(j=0;j<n;j++)  
  16.     {  
  17.         cout << str1 <<endl;  
  18.         for(i=0;i<10-a[j]/10;i++)  
  19.             cout << str2 << endl;  
  20.         for(i=0;i<a[j]/10;i++)  
  21.             cout << str3 << endl;  
  22.         cout << str1 <<endl;  
  23.         cout << str4 << endl;  
  24.     }  
  25.   
  26.     return 0;  
  27. }  

//C

//2014华为武汉上机试题一:手机电池余量

#include<stdio.h>

void printf_fun(int count)
{
 int i;
 int n = count/10;

 printf("+----------+\n");
 for(i=0;i<10-n;i++)
 {
  printf("|----------|\n");
 }
 for(i=0;i<n;i++)
 {
  printf("|++++++++++|\n");
 }
 printf("+----------+\n");
}

int main(void)
{
 int N,count[10]={0};
 int i;
 scanf("%d", &N);
 for(i=0;i<N;i++)
 {
  scanf("%d", &count[i]);
 }
 for(i=0;i<N;i++)
 {
   printf_fun(count[i]);
   printf("===============\n");
 }
 return 0;
}


2:2014华为武汉上机试题二:姓名的夫妻相

在中国,形容夫妻恩爱的词汇中,大家用的比较多的就是“夫妻相”。所谓“夫妻相”,就是两个人看上去比较般配,长相、身材等某些方面有一定的相似度。本题则另辟蹊径,从人的姓名维度,以字母重复个数来寻找最具“夫妻相”的人。
题目中预先给定一组女士的姓名拼音。输入男士的姓名拼音(拼音中间可以有空格,字母全部小写),依预先给定姓名拼音的先后遍历所有姓名,输出字母重复数最多的女士姓名。
规则1:如果字母重复数最多的女士有多位相同,则以最先匹配的女士做为最具“夫妻相”的人选。
规则2:人名中的相同字母,按重复一次处理。例如:li ling 与li lei 重复的字符个数为2,而不是4。
预置女士名单(先后循序必须保证):
"wang fei",
"zhang man yu",
"zhang zhi yi",
"li li",
"li xiao man",
"li yu cun",
"yang ni",
"xiao tong",
"li lei",
"zhang san"
运行时间限制: 无限制 
内存限制: 无限制 
输入: 输入一个男士姓名,字符串 
输出: 输出最具“夫妻相”的女士姓名

  1. //这是非常复杂的一种方法,考场上这样写的  
  2. #include <iostream>  
  3. #include <string>  
  4. using namespace std;  
  5.   
  6. char *str1="wang fei";  
  7. char *str2="zhang man yu";  
  8. char *str3="zhang zhi yi";  
  9. char *str4="li li";  
  10. char *str5="li xiao man";  
  11. char *str6="li yu cun";  
  12. char *str7="yang ni";  
  13. char *str8="xiao tong";  
  14. char *str9="li lei";  
  15. char *str10="zhang san";  
  16. bool a[26],a1[26],a2[26],a3[26],a4[26],a5[26],a6[26],a7[26],a8[26],a9[26],a10[26];  
  17.   
  18. int num(bool a[],bool b[])  
  19. {  
  20.     int count=0;  
  21.     for(int i=0;i<26;i++)  
  22.     if(a[i]&&b[i])  
  23.     count++;  
  24.     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值