2021-04-02 acwing随便找题

3315. 切蛋糕

1.题意:
2.题解:

分情况,具体看代码

3.ac代码:
#include<bits/stdc++.h>
#include<iostream>
#define ll long long
#define N 300
#include<set>
using namespace std;
int s[4];
int main(){
	int t;
	cin>>t;
	while(t--){
		cin>>s[0]>>s[1]>>s[2];
		sort(s,s+3);
		int a=s[0],b=s[1],c=s[2];
		if(!a&&!b){
			puts("0");
		}else if(!a){
			if(b==c)
			  puts("1");
			else
			   puts("2");
		}else{
			if(a+b==c||a==b||b==c){
				puts("2");
			}else{
				
				puts("3");
			}
		}
	}
} 

26. 二进制中1的个数

1.题意:
2.题解:

yxc:
在C++中如果我们右移一个负整数,系统会自动在最高位补1,这样会导致 nn 永远不为0,就死循环了。
解决办法是把 nn 强制转化成无符号整型,这样 nn 的二进制表示不会发生改变,但在右移时系统会自动在最高位补0。
或者题里有说几位数,循环几位

3.ac代码:
class Solution {
public:
    int NumberOf1(int n) {
       unsigned int num=n;
       int res=0;
       while(num){
           res+=num&1;
           num=num>>1;
       }
       
    }
};

25. 剪绳子

1.题意:
2.题解:

在这里插入图片描述
在这里插入图片描述

3.ac代码:
class Solution {
public:
    int maxProductAfterCutting(int length) {
        int res=1;
        if(length<=3) res=1*(length-1),length=0;
        else if(length%3==1) res=4,length-=4;
        else if(length%3==2) res=2,length-=2;
        while(length){
            res=res*3;
            length-=3;
        }
        return res;
        

    }
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值