思路: 最好想的是用hashmap,当然用c的话也可以用两个数组,一个数组用于存放字符串,自动对应ACSII码,一个将对应ACSII码的数字对应其下标,当然这也是用的映射的思想。
import java.util.*;
public class Caculatenumber {
public static void main(String[]args){
Scanner scan=new Scanner(System.in);
String str=scan.nextLine();
scan.close();
HashMap<Character,Integer> hash=new HashMap<Character,Integer>();
int n=str.length();
int count=0;
char[] a=new char[1024];
for(int i=0;i<n;i++){
a[i]=str.charAt(i);
}
for(int i=0;i<n;i++){
hash.put(a[i], 1);
}
System.out.println(hash.size());
// int n=str.length();
// char[] a=new char[1024];
// int[] map=new int[1024];
// int num=0;
// for(int i=0;i<n;i++){
// a[i]=str.charAt(i);
// }
// for(int i=0;i<n;i++){
// map[a[i]]=1;
// }
// for(int i=0;i<n;i++){
// if(map[i]==1){
// num++;
// }
// }
// System.out.println(num);
}
}
定义
Map<String ,String> map = new HashMap<String ,String>();
方法
1.put(Object key, Object value) //添加键值对
2.putAll(Collection c) //添加指定的映射关系到目标映射关系
3.get(Object key) //根据键来获取对应的值
4.getOrDefault(Object key, V defaultValue) //map中存在key则使用对应的value,否则使用defaultValue
4.containsKey(Object key) //是否有指定key的映射
5.containsValue(Object value) //是否有指定value的映射
6.remove(Object key) //删除该键值对
7.values() //返回所有值,返回形式为Collection
8.isEmpty() //测试映射是否为空
10.size() //返回大小
思路:最小公因数等于两者相乘除于最大公倍数,可用经典的辗转相除求最大公倍数
#include "stdio.h"
main(){
int a,b,c;
scanf("%d",&a);
scanf("%d",&b);
c=a*b;
while (a%b) { //辗转相除求最小公约数
int z=a%b;
a=b;
b=z;
}
printf("%d",c/b);
}