当前位置: 代码迷 >> C语言 >> 这些代码的算法不对? 还是什么?
  详细解决方案

这些代码的算法不对? 还是什么?

热度:292   发布时间:2007-09-29 20:10:06.0
整数指数幂运算用pow有误差,并且慢



by 雨中飞燕 QQ:78803110 C/C++讨论群:5305909
Blog: http://yzfy.programfan.com

[url=http://bbs.bc-cn.net/viewthread.php?tid=163571]请大家不要用TC来学习C语言,点击此处查看原因[/url] [url=http://blog.programfan.com/article.asp?id=24801]请不要写出非int声明的main函数[/url]
[url=http://bbs.bc-cn.net/viewthread.php?tid=162918]C++编写的Windows界面游戏[/url]
[url=http://yzfy.org/]C/C++算法习题(OnlineJudge):[/url] http://yzfy.org/
----------------解决方案--------------------------------------------------------
还是这样好

sum=0;
a=1;
sum=sum+a;
a=a*2;

----------------解决方案--------------------------------------------------------
我也写了一个大家看看呀

#include "stdio.h"

int ngeer(int n)
{
int i,m=1;
if(n==0)
m=1;
else if(n==1)
m=2;
else
for(i=1;i<=n;i++)
{
m=2*m;
}
return(m);
}


main()
{
int i,sum=0;
for(i=0;i<=10;i++)
{
sum=sum+ngeer(i);
}
printf("sum=%d\n",sum);
getchar();
}

经验证,结果是正确的

----------------解决方案--------------------------------------------------------
LZ的算法是计算最后2项的和。。。

int a,n,sum;
a=1;
sum =0;
for(n=0; n<=10; n++)
{
sum=sum+a;
a=a*2;

}

----------------解决方案--------------------------------------------------------
LZ可以不用使用那么多变量的
#include <stdio.h>
int main (void)
{
int a=2,n,sum=1;
for(n=1; n<=10; n++)
{
sum+=a;
a=a*2;
}
printf("%d",sum);
while (getchar()=='\n');
return 0;
}


----------------解决方案--------------------------------------------------------
  相关解决方案