函数问题2
这是基于问题1的情况下进行的难度增加问题
题目
小Z家住在一条短胡同里,这条胡同的门牌号从 1 开始顺序编号。
若其余各家的门牌号之和减去小Z家门牌号的两倍,恰好等于n,求小Z家的门牌号及总共有多少家。(有多解的情况下输出总家庭数最少的方案,题目肯定有解)
输入
一个正整数T(10<=T<=1000),表示一共有T组询问
接下来T行,每行一个整数n(0 < n < 100000)
输出
输出一共T行,每行两个整数a b(用空格隔开,表示小Z家的门牌号及总共有多少家,有多解的情况下输出总家庭数最少的方案)
思路
这是一道数学题目,我们需要知道所有的门牌号的结果数字并判定是否等于n,我们可以先创建一个有返回值的函数int之后用这个函数得到我们想要的数字从而求出结果
代码
#include<bits/stdc++.h>
using namespace std;
void fun(int n)
{
int y=1,t;
while(1)
{
t=y*(y+1)-2*n;
if(t>0&&t%6==0)
{
cout<<t/6<<" "<<y<<endl;
return;
}
y++;
}
}
int main()
{
int t,n;
cin>>t;
for(int i=1;i<=t;i++)
{
cin>>n;
fun(n);
}
return 0;
}