牛客小白月赛32

A.拼三角

题意:给你六根小木棍,问是否能组成两个三角形。

思路:,总共就只有十种可能,列举全部,判断是否构成三角形。

代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=10010;
int a[10];
int main()
{
	int n;
	cin>>n;
	int flag;
	while(n--){
		for(int i=1;i<=6;i++) cin>>a[i];
		sort(a+1,a+7);
		flag=0;
		if(a[1]+a[2]>a[3]&&a[4]+a[5]>a[6]) flag=1;
		if(a[1]+a[2]>a[4]&&a[3]+a[5]>a[6]) flag=1;
		if(a[1]+a[2]>a[5]&&a[4]+a[3]>a[6]) flag=1;
		if(a[1]+a[2]>a[6]&&a[4]+a[3]>a[5]) flag=1;
		if(a[1]+a[3]>a[4]&&a[2]+a[5]>a[6]) flag=1;
		if(a[1]+a[3]>a[5]&&a[2]+a[4]>a[6]) flag=1;
		if(a[1]+a[3]>a[6]&&a[2]+a[4]>a[5]) flag=1;
		if(a[1]+a[4]>a[5]&&a[2]+a[3]>a[6]) flag=1;
		if(a[1]+a[4]>a[6]&&a[2]+a[3]>a[5]) flag=1;
		if(a[1]+a[5]>a[6]&&a[2]+a[3]>a[4]) flag=1;
		if(flag) puts("Yes");
		else puts("No");
	}	
}

C.消除整数

题目:
给出一个正整数H,从1开始减,第一次必须减1,每次减的数字都必须和上一次相同或者是上一次的两倍,请问最少需要几次能把H恰好减到0。
思路:
从1开始减(设i为1),后面只能减 i 或者2* i,也就是说只能减2的倍数,那么如果一开始n为双数就得减两次i=1(题目要求第一次必须减1,为了确保n能到0所以需要保证n是双数),否则减一次。确保n为双数以后开始循环,如果能被i的两倍整除,那么就i* 2,否则就减自身i不变。用num作为计数器就好了。

全部评论

相关推荐

牛客771574427号:恭喜你,华杰
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务