广联达2018校招笔试题

广联达现场笔试,有一种难受叫做,没时间了,也没纸了,但是却发现了程序的错误。。。

第一题:输入一个N,输出1-2+3-4+5-6+7......N的值。

int fun(int num)
{
	if(num <= 0)
		return 0;
	int sum = 0;
	for(int i = 1; i <= num; ++i)
	{
		if(i & 1)
			sum += i;
		else
			sum -= i;
	}
	return sum;
}
void main()
{
	int n;
	cin>>n;
	cout<<fun(n)<<endl;
}
第二题:数组相邻数字差绝对值为1,查找第一个出现指定数字的位置,例如 1,2,3,4,5,6,7,6,5,6,7,8,9      查找7,返回7

int Fun(int *ar,int len,int num)
{
	for(int i = 0; i < len;)
	{
		//int tmp = ar[i] > num ? ar[i] - num : num - ar[i];
		int tmp = abs(ar[i]-num);
		if(tmp == 0)
			return i+1;
		i += tmp;
	}
}
void main()
{
	int ar[] = {2,3,4,3,2,1,2,3,4,5,6,7,8,9,10,9,8,7,8,7,6,5,6,7,8};
	int num;
	cin>>num;
	int len = sizeof(ar)/sizeof(ar[0]);
	cout<<Fun(ar,len,num)<<endl;
}
第三题:给定一个非负数组,该数组位置的值代表最大能跳的个数,求其是否能够调到最后一个位置。

bool fun(int *ar,int start,int end)
{
	if(start == end)
		return true;
	for(int i = 1; i <= ar[start]; ++i)
	{
		return fun(ar,start+i,end);
	}
	if(start > end)
		return false;
}
bool fun(int *ar,int len)
{
	if(ar == NULL || len <= 0)
		return false;
	return fun(ar,0,len-1);
}
void main()
{
	int ar[] = {3,2,1,0,4};
	int len = sizeof(ar)/sizeof(ar[0]);
	if(fun(ar,len))
		cout<<"Yes"<<endl;
	else
		cout<<"No"<<endl;
}
四、输入一个字符串,打印字符串的子集。

void Perm(string &st,int i)
{
	int k = 0;
	while(i)
	{
		if(i & 1)
			cout<<st[k]<<" ";
		i >>= 1;
		k++;
	}
	cout<<endl;
}
void Perm(string &st)
{
	int size = st.size();
	if(size <= 0)
		return ;
	for(int i = 0; i < (1 << size); ++i)
	{
		Perm(st,i);
	}
}
void main()
{
	string st;
	cin>>st;
	Perm(st);
}
五、有一个盒子中有不定量的白球和黑球,每次取出两个小球,如果颜色相同,则放回一个黑球,否则,放回一个白球。请验证,可以取完小球,并且说明最后剩下的小球颜色,和开始时候的黑白球的数量关系。

这个我也是半斤八两,就不在各位面前班门弄斧了。

----------------------------------------------------------------------------


除了开头说的那种难受之外,还有一种难受,叫做,回来写博客,一个一个发现自己程序的错误。。。



  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值