一道编程题,找出能连续相加等于1200的自然数,请不要用指针,用最简单的程序就行了

一道编程题,找出能连续相加等于1200的自然数,请不要用指针,用最简单的程序就行了,第1张

这个题方法可真不少,由盯含裤于老改数据量很小,我来弄个简单的方法,不过从算法上说不是很优:

#include <stdio.h>

int main()

{

int i,j

for(i=0i<400i++) //两个连续的数没有可能,因为必定一奇一偶凯简,和必为奇,所以范围不必设为1200或600

{

for(j=i+1j<=401j++)

{

if( (i+j)*(j-i+1)/2==1200 )

// 依据:等差数列前N项和公式:Sn=(a1+an)*(an-a1+1)/2(a1为初始值,an为终止值,步长为1)

printf("从 %d 一直加到 %d 的和等于 1200 \n",i,j)

}

}

}

不知道兄台对Mathematica有没有兴趣,这样问题会变得极其简单:

{a, b} /. {ToRules@

Reduce[Sum[i, {i, a, b}] == 1200 &&0<a<b, Integers]}

Tr /@ Range @@@ %

#include<stdio.h> 

main()

{ 老改

    int i,a[12]={100,200,300,400,500,600,700,800,900,1000,1100,1200}//定义变量樱亮 

    float c,b

    for(i=0i<侍颂判12i++){//循环12次,12个数据 

     c=(float)a[i]//整数转浮点数 

     b=c/(602+c)//浮点数计算 

printf("%d\t%f\n",a[i],b)//输出数据 

}         

}

如图所示,望采纳。。。。。。

#include <stdio.h>

double c_tax(double revenue)

{

double tax = 0.0

if(revenue <斗清银 800)

return tax

else

{

tax += (revenue - 800) * 0.05

if(revenue >正早 2000)

{

tax += (revenue - 2000) * 0.1

if(revenue >5000)

{

tax += (revenue - 5000) * 0.2

if(revenue >空宴 10000)

{

tax += (revenue - 10000) * 0.3

if(revenue >100000)

{

tax += (revenue - 100000) * 0.4

}

}

}

}

}

return tax

}

int main()

{

double tax = c_tax(2000)

printf("Tax: %.2f", tax)

}

那几个嵌套的if个人不是很满意,你看着还可以就拿去...


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12328878.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存