问题描述】
数学课上,老师为了了解谁的反应最快,出了一道这样的问题: 给出一个正整数 M,求 S=1+2+3+…+N 的值中,符合条件 S<=M的最大的N 的值。如给出 M 的值为 7,则 N 为 3,因为 1+2+3=6,1+2+3+4=10,所以符合 S<=m的条件下,N 的最大值为 3。对于给定的 M 的值,小明很快就说出了符合条件的N 的值。现在请你编写一个解决这个问题的程序。
【输入格式】
只有一个数,就是M 的值。
【输出格式】
只有一个数,就是符合题目条件的 N 的最大值。
【输入样例】
7
【输出样例】
3
【数据规模】
60%的 M的值小于等于 30000
100%的 M的值小于等于 1000000000
【时间限制】
1S
#include<bits/stdc++.h>
using namespace std;
long long m,n,ans;
int main(){
cin>>m;
for(int i=1; ;i++){ //无限循环查找
ans+=i;
if(ans==m){
cout<<i;
break;
}
if((ans+i+1)>m&&ans<m){
cout<<i;
break;
}
}
return 0;
}