ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

哈理工新生赛补题

2021-11-30 00:00:09  阅读:232  来源: 互联网

标签:main int 新生 cnt5 补题 cnt1 printf include 理工


https://ac.nowcoder.com/acm/contest/25080

第一题太简单略过

第二题 贪心:注意两种情况,5元纸币够用和5元纸币不够用;

                        if从句搞定

#include <stdio.h>
int main(){
	long long int n,a,cnt5,cnt1;
	scanf("%d %d",&n,&a);
	cnt5 = a / 5;
	if(cnt5 > n){
		cnt5 = n;
		cnt1 = a-n*5;
	}else{
		cnt1 = a-cnt5*5;
	}
	
	printf("%d %d",cnt5,cnt1);
	return 0;
}

第三题 简单博弈(课上讲过)      直接上(k+1)的倍数

#include <stdio.h>
int main(){
    int n;
    scanf("%d",&n);
    if(n%4==0){
         printf("bob");
    }else{
        printf("kiki");
    }
     
    return 0;
}

第四题 暴力枚举   

                                https://ac.nowcoder.com/acm/contest/25080求余通过比较找最大值

#include <bits/stdc++.h>
using namespace std;

int main(){
	int n,r,l;
	int ans=0;
	cin >> n >> l >> r;
	for(int i=l;i<=r;i++){
		ans=max(ans,i%n);
	}
	cout << ans;
	return 0;
}

第五题    位运算巧用(附其他做法)

位运算详细戳这https://blog.csdn.net/deaidai/article/details/78167367?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163819810116780357218526%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=163819810116780357218526&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-1-78167367.pc_search_result_cache&utm_term=%E4%BD%8D%E8%BF%90%E7%AE%97&spm=1018.2226.3001.4187

注意题目是 求二的正整数次幂之和;

奇数直接输出-1,不符合要求;

剩下的数由二进制形式找到第一个“1”所在的位置,前面补零

#include <bits/stdc++.h>
using namespace std;

int main(){
	int x,i;
	cin >> x;
	if(x%2!=0){
		cout<<-1<<endl;
	}else{
		for(i=31;i>=1;i--){
			if(x>>i&1){              
				cout<<(1<<i)<<" ";   //输出2的i次方;
			}
		}
	}
	return 0;
}


//x&1代表最低位的值(最右位的值)
//假设:x=10==(1010)2
//那么 x&1 == 0

 

#include<stdio.h>
int main(void){
    int n ;
    int i ;
    scanf("%d" , &n);
    if (n % 2 == 1)  printf("-1");
    if(n % 2 == 0){
        
        for(i = 2 ; n > 0 ; i = i * 2){
            if(i > n){
              i = i / 2;
               n = n - i;
                printf("%d " , i);
                i = 2;
                
            }
        }
            
    }
    
    return 0 ;
}

标签:main,int,新生,cnt5,补题,cnt1,printf,include,理工
来源: https://blog.csdn.net/m0_61740661/article/details/121620057

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有