竞赛讨论区 > 牛客练习赛23 A、B题题解
头像
sorrow8
发布于 2018-07-28 10:42
+ 关注

牛客练习赛23 A、B题题解

A题

由题意可知,没次循环遍历判定由大面值到小面值进行求解
时间复杂度O(1)

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h> 
int A[7]={100,50,20,10,5,2,1};
int B[6]={50,20,10,5,2,1};
int main(){
    long long n;
    scanf("%lld",&n);
    while(n--){
        long long a[7]={0},b[6]={0},a1,b1;
        scanf("%lld %lld",&a1,&b1);
        int i = 0;
        while(a1){
            a[i] = a1/A[i];
            a1 = a1%A[i];
            i++;
        }
        i = 0;
        while(b1){
            b[i] = b1/B[i];
            b1 = b1%B[i];
            i++;
        }
        for(i = 0;i < 7;i++){
            printf("%d ",a[i]);
        }
        for(i = 0;i < 5;i++){
            printf("%d ",b[i]);
        }
        printf("%d\n",b[5]);
    }
}

B题

由题意可知分解为n个1那么没次都是(n-1)×1+(n-2)×1+1×1=(n-1)×n/2
时间复杂度O(1)

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h> 
int main(){
    long long n,num;
    scanf("%lld",&num);
    while(num--){
        scanf("%lld",&n);
        printf("%lld\n",(n-1)*n/2);
    }
}

全部评论

(0) 回帖
加载中...
话题 回帖

本文相关内容

等你来战

查看全部

热门推荐