1404:我家的门牌号

题目:

我家住在一条短胡同里,这条胡同的门牌号从1开始顺序编号。

若其余各家的门牌号之和减去我家门牌号的两倍,恰好等于n,求我家的门牌号及总共有多少家。数据保证有唯一解。

这题似乎可以不用函数啊...... 

不行!就算是void也要用!

思路:

从1到n/2,一个一个验证。(据我验证,绝对不可能超过n/2的)

函数......lj()用来统计门牌号之和吧!

代码!

#include<iostream>
#include<cstdio>
using namespace std;
int lj(int x)
{
	int s=0;
	for(int i=1;i<=x;i++) s+=i;
	return s;
}
int main()
{
	int n,z;
	cin>>n;
	for(int i=1;i<=n/2;i++)
	{
		z=lj(i);
		for(int wo=1;wo<=i;wo++)
			if(z-wo*2==n)
			{
				cout<<wo<<' '<<i;
				return 0;
			}
	}
}

这时,我愉快地提交了——

我***&%#$%#$%*^&(^&$@@#%$$&^~~*%^$%&啊! 

屌炸了!

我一开始冥思苦想也想不出错哪了!还以为数据出问题了呢!

恍然大悟:

我在统计时把“我家的”也算进去了!怪不得......

在判断时把wo去掉不就得了?!

代码。

#include<iostream>
#include<cstdio>
using namespace std;
int lj(int x)
{
	int s=0;
	for(int i=1;i<=x;i++) s+=i;
	return s;
}
int main()
{
	int n,z;
	cin>>n;
	for(int i=1;i<=n/2;i++)
	{
		z=lj(i);
		for(int wo=1;wo<=i;wo++)
			if((z-wo)-wo*2==n)//看看变化吧。
			{
				cout<<wo<<' '<<i;
				return 0;
			}
	}
}

提交——

 拜拜!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值