复试机试帖1:暴力求解

关于复试机试的所有帖子,均是我本人拿来当日记用的而不是面向大众。所以写的很简单,仅限于自己看懂。大伙勿喷。

复试机试帖1-1:暴力求解

枚举型

1.reserve函数(将一个数反转)

int reserve(int x){
	int re=0;
	while(x>0){
		re=re*10;
		re=re+x%10;
		x=x/10;
	} 
	return re;
}

ps:之前喜欢先把输入数字的位数给求出来,实际上这方法又笨又蠢。上述的代码块直接给你整出来。

刷了几道题,求反转数是经常出现的一个步骤。因此特地将他放到这里来。

  1. 例题:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FdIlIKEY-1677914439428)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230304151005959.png)]

解题思路

​ 学过计算机的看这种题目一般不会有太大门槛。这题唯一恶心的地方是给你的测试用例。如图下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YYmcbz0r-1677914439429)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230304151339799.png)]

​ 当时我就纳闷了,咋一次性测试用例给你三个。在我印象里,每次都是指测试一组用例,给你4个数,然后你给出两个数字和对应价格。

​ 但是这里给出的测试输入,一次性输入三组。我理解为一次性输入n组,然后答案一次性给出n组答案。但又遇到问题,谁知道你一次性输入多少组。题目又没说。

​ 重头想了一下,应该不是一次性把答案给出来。我结合while循环,只要给了输入,我就跑一遍,然后输入一组答案,等你下一次输入,如果又输了东西,我再跑一遍,给出答案。这样我的程序永远处于等待输入状态。

​ 所以标准的测试用例应该长这样子

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WlKWh1MM-1677914439430)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230304151908967.png)]

个人代码:

#include<iostream>
using namespace std;
int main(){
	int x=0;
	int y=0;
	int z=0;
	int N=1;
	int single_price=0;
	int sum_price=0;
	int a=1;
	int b=0;
	int sign=0;
	while(cin>>N>>x>>y>>z){
	sign=0;
	for(a=9;a>=1;a=a-1)
	{
	for(b=9;b>=0;b=b-1)
	{
		sum_price=10000*a+1000*x+100*y+10*z+b;
		if(sum_price%N==0){
			cout<<a<<" "<<b<<" "<<sum_price/N<<endl;
			a=-1;
			sign=1;
			break;
		
		}
	}	
	if(sign==0&&a==1)
	cout<<0<<endl;
	}
	}

	}
	

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值