解决数学谜题:寻找特殊门牌号与家庭数量

函数问题2

这是基于问题1的情况下进行的难度增加问题

题目

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

若其余各家的门牌号之和减去小Z家门牌号的两倍,恰好等于n,求小Z家的门牌号及总共有多少家。(有多解的情况下输出总家庭数最少的方案,题目肯定有解)

输入

一个正整数T(10<=T<=1000),表示一共有T组询问

接下来T行,每行一个整数n(0 < n < 100000)

输出

输出一共T行,每行两个整数a b(用空格隔开,表示小Z家的门牌号及总共有多少家,有多解的情况下输出总家庭数最少的方案)

思路

这是一道数学题目,我们需要知道所有的门牌号的结果数字并判定是否等于n,我们可以先创建一个有返回值的函数int之后用这个函数得到我们想要的数字从而求出结果

代码

#include

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<

return;

}

y++;

}

}

int main()

{

int t,n;

cin>>t;

for(int i=1;i<=t;i++)

{

cin>>n;

fun(n);

}

return 0;

}