笔试刷题day4

计算糖果

在这里插入图片描述

链接:https://www.nowcoder.com/practice/ac61207721a34b74b06597fe6eb67c52?tpId=85&&tqId=29862&rp=1&ru=/activity/oj&qru=/ta/2017test/question-ranking

这道题目标较简单,就是解一个三元一次方程组,同时判断存不存在。
假设 1、A - B = a, 2、B - C = b, 3、A + B = c, 4、B + C = d
1 + 3得 A = (a + c ) / 2,4 - 2 得 C = (d - b ) / 2, 4 + 2 得 B1 = (d + b ) / 2, 3 - 1 得B2 = (c - a) / 2
我们只需要判断B1,与B2是否相等就可以判断是否存在解。

示例代码:

#include <iostream>

using namespace std;

int main(){

	int a, b, c, d;
	cin >> a >> b >> c >> d;
	int A, B1, B2, C; 
	A = (a + c) / 2;
	B1 = (d + b) / 2;
	B2 = (c - a) / 2;
	C = (d - b) / 2;

	//判断是否存在解
	if (B1 != B2)
		cout << "No" << endl;
	else
		cout << A << " " << B1 << " " << C << endl; 

	return 0;
}

进制转换

在这里插入图片描述
链接:https://www.nowcoder.com/practice/ac61207721a34b74b06597fe6eb67c52?tpId=85&&tqId=29862&rp=1&ru=/activity/oj&qru=/ta/2017test/question-ranking

熟悉二进制转换得一般就比较容易推出任意进制转换,对于十进制数m,进制n,m % n是转换后得最后一个数字或字母,(m / n) % n是倒数第二个数字或字母,以此类推
要注意的就是正负问题和数字字母得取得。

示例代码:

#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

int main(){

	string s, table = "0123456789ABCDEF"; //table用于进制转换
	int m, n;
	cin >> m >> n;
	bool flag = false;

	if (m == 0){
		cout << 0 << endl;
		return 0;
	}

	//判断正负
	if (m < 0){
		
		m = 0 - m;
		flag = true;
	}

	//进制转换
	while (m){

		s += table[m % n];
		m /= n;
	}

	if (flag)
		s += '-';

	reverse(s.begin(), s.end());

	cout << s << endl;

	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值