美文网首页
PAT B1087 有多少不同的值

PAT B1087 有多少不同的值

作者: LinkLiKang | 来源:发表于2021-04-03 10:51 被阅读0次

最近在做PAT,做到这道题,我发现好多人都是用set做的,set当然很方便,但是我不知道老师出这道题的初衷是什么。我第一时间想到的其实我下面写的这种方法。先把数算出来存起来,再比较,把出现过的数设置成负数,再统计非负数的个数。提交之后AC了。
,,,

#include <stdio.h>
int num[10010];
int main(){
int n;
int diffnum = 0;
if(scanf("%d", &n)){
    for(int i = 1; i <= n; i++){
        int total = i / 2 + i / 3 + i / 5;
        num[i] = total;
    }
    
    for(int i = 1; i < n; i++){
        if(num[i] < 0){
            continue;
        }
        for(int j = i + 1; j <= n; j++){
            if(num[j]==num[i]){
                num[j] = -1;
            }
        }
    }
    
    for(int i = 1; i <= n; i++){
        if(num[i] >= 0){
            diffnum++;
        }
    }
    
    printf("%d\n", diffnum);
}
return 0;
}

,,,

相关文章

网友评论

      本文标题:PAT B1087 有多少不同的值

      本文链接:https://www.haomeiwen.com/subject/lkzckltx.html