
if(n%2)n=(3*n+1)/2; 这一行里(n%2)n ,括号后面的n如何理解? 5
#include<stdio.h>intmain(){intn,cont=0;scanf("%d",&n);while(n>1){if(n%2)n=(3*n+1)/2;e...
#include<stdio.h>
int main()
{
int n,cont=0;
scanf("%d",&n);
while(n>1){
if(n%2)n=(3*n+1)/2;
else n/=2;
cont++;
}
printf("%d\n",cont);
return 0;
} 展开
int main()
{
int n,cont=0;
scanf("%d",&n);
while(n>1){
if(n%2)n=(3*n+1)/2;
else n/=2;
cont++;
}
printf("%d\n",cont);
return 0;
} 展开
展开全部
倒序相加
设Sn=1+2+3+........+(n-1) (1)
倒过来一下
Sn=(n-1)+(n-2)+……+2+1 (2)
(1)+(2)得
2Sn=n(n-1) (n个(n-1)相加)
所以Sn=n(n-1)/2
扩展资料:
如果一个 数列{an},与首末项等距的两项之和等于首末两项之和,可采用把正着写和与倒着写和的两个和式相加,就得到一个常数列的和,这一求和方法称为倒序相加法 (可用于求等差数列的性质公式------ Sn=n( a + a )/2 )
举例:求 数列:2 4 6……2n的前2n项和
解答:
2 4 6 …… 2n
2n 2(n-1) 2(n-2)…… 2
设前n项和为S,以上两式相加
2S=[2+(2n)]+[4+2(n-1)]+[6+2(n-2)]+……+[(2n)+2] 共n个2n+2
故:S=n(2n+2)/2=n(n+1)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询