1+3的一次方+3的二次方+........+3的2010次方的算法

要具体的过程和答案,速求答案,谢谢... 要具体的过程和答案,速求答案,谢谢 展开
 我来答
江伟77
2012-06-03 · TA获得超过591个赞
知道小有建树答主
回答量:230
采纳率:100%
帮助的人:207万
展开全部
/*数组模拟*/
/* 1+3的一次方+3的二次方+........+3的2010次方的算法 */
/*可以控制计算到3的n次方,n由键盘输入 */
#include <stdio.h>
#include <string.h>
#define N 1000

/*子函数cheng3()作用:把str[]中存的数值乘以3,再把结果存入str[]中(数字倒序存储)*/
void cheng3(char *str)
{
int i,jinwei=0,temp,j=0;
char news[N];
for(i=0;str[i]!='\0';i++)
{
temp=(str[i]-48)*3+jinwei;
news[i]=temp%10+48;
jinwei=temp/10;
}
if(jinwei>0)
news[i++]=jinwei+48;
news[i]='\0';
for(i=0;news[i]!='\0';i++)
str[i]=news[i];
str[i]='\0';
}

/*子函数add()作用:把a[]和b[]中存的数值相加,再把结果存入a[]中(数字倒序)*/
void add(char a[],char b[])
{
int he,jinwei=0,i;
for(i=0;b[i]!='\0';i++)
{
if (a[i]!='\0')
{
he=a[i]+b[i]-48-48+jinwei;
}
else
{
he=b[i]-48+jinwei;
}
a[i]=he%10+48;
jinwei=he/10;
}
if(jinwei>0) //处理进位
{
for(;a[i]!='\0';i++)
if((a[i]+jinwei)<58)
{
a[i]=a[i]+jinwei;
jinwei=0;
break;
}
else
{
a[i]=a[i]+jinwei-10;
jinwei=1;
}
}
if(a[i]=='\0'&&jinwei==1)
{
a[i++]='1';
a[i]='\0';
}
}

int main(void)
{
int n;
int i,j;
while(1)
{
char a[N]="1",b[N]="1";
printf("输入n:");
scanf("%d",&n); //计算到3的n次方
if(n<=0) break; //控制结束。取n为0时,结束循环
for(j=1;j<=n;j++)
{
cheng3(b);
add(a,b);
}
//printf("3^%d=",n);
//for(i=strlen(b)-1;i>=0;i--)
// printf("%c",b[i]);
printf("1加到3的n=%d次方是:\n",n);
for(i=strlen(a)-1;i>=0;i--)
printf("%c",a[i]);
printf("\n");
getchar();getchar();
}
}
匿名用户
2012-06-02
展开全部
高斯求和
追问
什么意思啊?看不懂唉
追答
(首项+末项)*项数/2=数列和
例题:1+2+3+4+5……+99+100
1就是首项,100就是末项,项数指这个式子里有几个数字,因为一共有100个数字所以项数为100
1+2+3+...+100
=(1+100)*100/2
=101*100/2
=10100/2
=5050
另外:末项=首项+(项数-1)*公差
项数=(末项-首项)/公差+1
首项=末项-(项数-1)*公差
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qiufeng6407
2012-06-02 · TA获得超过149个赞
知道小有建树答主
回答量:175
采纳率:0%
帮助的人:132万
展开全部
这个不是等比数列吗?等比数列求和不是有公式的吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式