当前位置: 代码迷 >> 综合 >> 杭电OJ100题——2027-2029(C++版)
  详细解决方案

杭电OJ100题——2027-2029(C++版)

热度:61   发布时间:2023-12-15 13:35:47.0

统计元音


Problem Description

统计每个元音字母在字符串中出现的次数。

 Input

输入数据首先包括一个整数n,表示测试实例的个数,然后是n行长度不超过100的字符串。

 Output

对于每个测试实例输出5行,格式如下:
a:num1
e:num2
i:num3
o:num4
u:num5
多个测试实例之间由一个空行隔开。

请特别注意:最后一块输出后面没有空行:)

 Sample Input

2 
aeiou 
my name is ignatius

 Sample Output

a:1 
e:1 
i:1 
o:1 
u:1 a:2 
e:1 
i:3 
o:0 
u:1
#include<iostream>
#include<stdio.h>
#include<string>
using namespace std;int main(){int n;scanf("%d",&n);getchar();char arr[100];while(n--){gets(arr);string str = arr;int num1=0,num2=0,num3=0,num4=0,num5=0;for(int i=0;i<str.size();i++){switch(str[i]){case 'a':num1++;break;case 'e':num2++;break;case 'i':num3++;break;case 'o':num4++;break;case 'u':num5++;break;default:break;}}cout<<"a:"<<num1<<endl;cout<<"e:"<<num2<<endl;cout<<"i:"<<num3<<endl;cout<<"o:"<<num4<<endl;cout<<"u:"<<num5<<endl;if(n>0)cout<<endl;}
}

Lowest Common Multiple Plus

Problem Description

求n个数的最小公倍数。

 Input

输入包含多个测试实例,每个测试实例的开始是一个正整数n,然后是n个正整数。

 Output

为每组测试数据输出它们的最小公倍数,每个测试实例的输出占一行。你可以假设最后的输出是一个32位的整数。

 Sample Input

2 4 6 
3 2 5 7

 Sample Output

12
70
#include<iostream>
#include<algorithm>
using namespace std;int main(){int n;while(cin>>n){int* arr = new int[n];int lowestCommonMultiplePlus;for(int i=0;i<n;i++)cin>>arr[i];sort(arr,arr+n);//最大整数翻倍for(int i=1;;i++){int j=0;for(j=0;j<n-1;j++)if(i*arr[n-1]%arr[j]!=0)break;if(j==n-1){lowestCommonMultiplePlus=i*arr[n-1];break;}}cout<<lowestCommonMultiplePlus<<endl;}
}

Palindromes _easy version

Problem Description

“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。请写一个程序判断读入的字符串是否是“回文”。

 Input

输入包含多个测试实例,输入数据的第一行是一个正整数n,表示测试实例的个数,后面紧跟着是n个字符串。

 Output

如果一个字符串是回文串,则输出"yes",否则输出"no".

 Sample Input

4 
level 
abcde 
noon 
haha

 Sample Output

yes 
no 
yes 
no

 

#include<iostream>
#include<string>
#include<stdio.h>
using namespace std;int main(){int n;cin>>n;getchar();while(n--){string result = "no";string str;getline(cin,str);int j=0,m;m=str.size()/2;for(j=0;j<m;j++)if(str[j]!=str[str.size()-1-j])break;if(j==m)result = "yes";cout<<result<<endl;}
}