[蓝蓝计算机考研算法]-day02

134 阅读1分钟

3.计算字符串中含有的不同字符的个数

编写一个函数,计算字符串中含有的不同字符的个数。字符在ASCII码范围内(0~127,包括0和127),换行表示结束符,不在字符里。不在范围内的不作统计。多个相同的字符只计算一次

例如,对于字符串abaca而言,有a、b、c三个不同的字符,因此输出3。

数据范围:1<=n<=500

思路: 设置一个大小为500的字符数组,输入一个长度为n的字符串,通过两层循环,遍历字符串,令sum的初始值为n如果有重复的,sum--,最后输出sum

#include <stdio.h>
#include <string.h>
int main(){
    char x[500];
    gets(x);
    int n= strlen(x);
    int sum=n;
    for(int i=0;i<n;i++){
        if(x[i]=='\0'){
            break;
        }
        for(int j = i+1;j<n;j++)
        {
            if(x[i] == x[j])
            {
                sum --;
                break;
            }
        }
    }
    printf("%d",sum);
}

从键盘上输入两个数m和n,求m和n的最小公倍数

思路实现: 设置一个for循环,让i的初始值为m和n中任意一个数,如果i%m==0且i%n==0,则i为m和n的最小公倍数,否则i++

代码实现:

#include <stdio.h>

int minbei(int x,int y){

    for(int i=x;;i++){
        if(i%x==0&&i%y==0){
            return i;
        }
    }
}

int main() {
    int m,n;
    scanf("%d%d",&m,&n);
    int A = minbei(m,n);
    printf("%d",A);
}