3、计算字符串中含有的不同字符的个数
编写一个函数,计算字符串中含有的不同字符的个数。字符在ASCII码范围内(0~127,包括0和127),换行表示结束符,不算在字符里。不在范围内的不作统计,多个相同的字符只计算一次。例如,对于字符串abaca,有a、b. c三种不同的字符,因此输出3。
数据范围: 1 <= n<=500
输入描述
输入一行没有空格的字符串。
输出描述
输出字符串中范围在(0~127,包括0和127)字符的种数。
思路
输入一行字符串,将字符逐个添加到set容器中,利用set容器的去重特性,输出set容器的长度即为答案。
具体实现
#include<iostream>
#include<set>
using namespace std;
int main(){
string text; //存放输入的字符串
getline(cin,text); //获取输入的一行字符串
set<char> s; //使用set容器
for(int i=0;i<text.length();i++){
s.insert(text[i]); //将text中的字符逐个添加到set容器中
}
cout<<s.size()<<endl; //输出set容器的长度,即为不同字符的个数
}
4、从键盘输入两个数字n,m,求解m和n的最小公倍数。
思路
辗转相除法,讲求n,m的公约数转化为求m,n mod m的最大公约数。
具体实现
#include<iostream>
using namespace std;
int GCD(int a,int b){
if(b==0){
return a;
}
else{
return GCD(b,a%b);
}
}
int main(){
int n,m;
cin>>n>>m;
cout<<n*m/GCD(n,m);
}