我家的门牌号
题目描述
我家住在一条短胡同里,这条胡同的门牌号从 1 1 1 开始顺序编号。
若其余各家的门牌号之和减去我家门牌号的两倍,恰好等于 n n n,求我家的门牌号及总共有多少家。数据保证有唯一解。
输入格式
一个正整数 n n n。 n < 100000 n<100000 n<100000。
输出格式
一行,包含两个正整数,分别是我家的门牌号及总共有多少家,中间用单个空格隔开。
样例 #1
样例输入 #1
100
样例输出 #1
12 16
#include<stdio.h>
#include<math.h>
#include<stdio.h>
#include<stdbool.h>
#include<string.h>
long long sum(long long m){
if(m==1){
return 1;
}
else{
return m+sum(m-1);
}
}//邻居和我家门牌号之和
int main(){
long long n;
long long i,j,tag=0;//tag标志位,如果成功找到,立刻退出
scanf("%lld",&n);
for(i=2;;i++){//i代表门牌号的最大值
for(j=i;j>=1;j--){//j代表我家门牌号的取值
if(n+2*j==sum(i)-j){//sum代表其余各家门牌号之和,需要减去我家的门牌号
tag=1;
break;
}
}
if(tag==1){
break;
}
}
if(tag==1){
printf("%lld %lld\n",j,i);
}
return 0;//CSDN:旺旺的碎冰冰~
}