1.6 解不等式
应用简单的和积处理求解一些涉及整数解的不等式是可行的,也是方便的。
1.6.1 立方和不等式 13+23+...+m3
试求满足上述立方和不等式的m的整数解。
本题算法如下:
对指定的n,设置求和循环,从i=1开始,i递增1取值,把i3(或i*i*i)累加到s,直至s>=n,脱离循环作相应的打印输出。
程序代码如下:
#include<stdio.h>
void main()
{
long int n,s=0;
int i,m;
printf("求满足1^3+2^3+...+m^3<n的整数解\n请输入n:");
scanf("%d",&n);
for(i=1; i<=10000;i++)
{
s=s+i*i*i; /*求立方累加和*/
if(s>=n) break; /*当s大于等于n时退出循环*/
}
s=s-i*i*i;
m=i-1;
printf("不等式的整数解为:m< %d\n",m);
printf("1^3+2^3+...+%d^3 = %ld\n",m,s);
}
程序运行结果如下:
思考:为什么循环体外给m,s赋值为m=i-1; s=s-i*i*i?直接给出i与s行吗?
责任编辑:cyth