#include stdio.h
創(chuàng)新互聯(lián)建站始終堅持【策劃先行,效果至上】的經營理念,通過多達10多年累計超上千家客戶的網站建設總結了一套系統(tǒng)有效的全網營銷推廣解決方案,現(xiàn)已廣泛運用于各行各業(yè)的客戶,其中包括:樓梯護欄等企業(yè),備受客戶贊譽。
/*
* 等差數(shù)列求和公式Sn=n*a1+n(n-1)d/2或者Sn=n(a1+an)/2
*/
int main() {
int n;
int sum=0;
scanf("%d",n);
sum=n*2+n*(n-1)*3/2;
printf("%d",sum);
return 0;
#include stdio.h
int fun(int n)
{
if(n==0)
? return 0;
return n%2?2*fun(n-1)+1:2*fun(n-1)-1;
}
int main()
{
int n;
scanf("%d",n);
printf("%d\n",fun(n));
return 0;
}
如果中間有相等 3,2,1,1,1,1, 0 ,這不算降序,算無序了?。?!
我重新優(yōu)化了一下,雖改了一點點,但效率提高了很多;
#include "stdio.h"
int order(int dat[ ],int n)
//升序就輸出return 1,降序輸出-1,亂序輸出0
{
int t=dat[1]-dat[0];
int r=t0?1:(t0?-1:0);
if (r==0||n=2) // r==0 時,不管N多少,都不再遞歸下去,這大大優(yōu)化了
return(r);
int r1=order(dat+1,n-1);
return (r1==r?r:0);
} // 這遞歸算法僅六行,夠短的了 !!!!
main()
{
int dat[ ]={1,4,2,6};
printf("%d",order(dat,4));
}
我用C++BUILDER6試過了,我的遞歸是正確的
#includestdio.h
int?fib(int?a);
main()
{
int?n;
scanf("%d",n);
fib(n);
}
int?fib(int?a)
{
int?b[100];
int?i;
b[0]=1;
b[1]=1;
for(i=2;i=a-1;i++)
b[i]=b[i-1]+b[i-2];
for(i=0;ia;i++)????//b[a]沒有被賦值,不能輸出它的值
{
printf("%d\t",b[i]);
if((i%4)==3)????//每四個換行,應該是取余為3的時候打印換行符
printf("\n");???//打印換行符應該在for循環(huán)里面
}
return?b[a];
}