我知道你错在哪里了!
#include <stdio.h>
long fun(long n,long a,long b,long c) //加上参数类型吧。。
{
long k;
for(k=1;k<n;k++) //k从1开始,毕竟是自然数
{
if(k*b==b*n*(n+1)/2-(n-1)*(a*b+c)) //(n-1)*(a*b+c)会很大,所以定义long,否则溢出。。(重点)
return k; //改成*b是为解决3/2=1的问题,不说这个了
}
return 0; //避免找不到k就不返回函数值。。
}
int main()
{
long a,b,c,k,n;
scanf("%ld%ld%ld",&a,&b,&c);
for(n=1;;n++)
{
k=fun(n,a,b,c);
if(k) break;
}
printf("%ld",k);
return 0;
}
#include <stdio.h>
long fun(long n,long a,long b,long c) //加上参数类型吧。。
{
long k;
for(k=1;k<n;k++) //k从1开始,毕竟是自然数
{
if(k*b==b*n*(n+1)/2-(n-1)*(a*b+c)) //(n-1)*(a*b+c)会很大,所以定义long,否则溢出。。(重点)
return k; //改成*b是为解决3/2=1的问题,不说这个了
}
return 0; //避免找不到k就不返回函数值。。
}
int main()
{
long a,b,c,k,n;
scanf("%ld%ld%ld",&a,&b,&c);
for(n=1;;n++)
{
k=fun(n,a,b,c);
if(k) break;
}
printf("%ld",k);
return 0;
}