1.蔡勒公式求星期
2.遞迴演算法分組
3.揹包問題
1.用蔡勒公式求星期
蔡勒公式(有多個,這裡就寫我熟悉的乙個):
w=(y+y/4+c/4-2c+26(m+1)/10+d-1)%7;
w:所求星期
y:年份的後兩位數
c:年份的前兩位數
m:月份(幾月)
d:日期(幾號)
注意:
1.當m為1或2月份時,你的把它當作是上一年的13或14月份帶進去計算
2.當求的w小於0時要將w加上7,當w等於0時,為星期天
舉例:黑色星期五
黑色星期五源於西方的宗教信仰與迷信:耶穌**死在星期五,而13是不吉利的數 字。兩者的結合令人相信當天會發生不幸的事情。星期五和數字13都代表著壞運氣,兩個不幸的個體最後結合成超級不幸的一天。所以,不管哪個月的13日又恰逢星期五就叫「黑色星期五」。找出一年內有有哪些天是「黑色星期五」。
**如下
#include int main()
w = (y+y/4+c/4-2*c+26*(m+1)/10+13-1)%7;
if(w<0) w+=7;
if(i==1 || i==2)
y++;
if(w == 5)
}return 0;
}
執行結果:
2.用遞迴演算法求組合
示例:將從6物品中取3個有哪幾種方式
#include #include #include #define n 10000
#define m 3
char group[n][m+1];//注意要留個位置給'\0',不然不好列印,scanf以'\0'列印結束
char group[m];
int l = 0;
void combination(char *str,int len,int m)
l++;
return ;
} for(int i=len; i>=m; i--)
}int main() ;
int len = sizeof(str);
int m = m;
char ch;
combination(str,len,m);
for(int i=0; i執行結果:
3.揹包問題
//有物品標號為1,2,3,4,物品大小為2,3,4,5,物品價值為3,4,5,6的物品
//現在有乙個容量為8的1級包,問這個一級包能最大能裝多少價值的物品
//整體思路
//定義2個1維陣列value[5]=,big=
//定義乙個2維陣列v[i][j]用來表示容量為j的一級包裝的前i個物品的最大價值
//首先初始化陣列為0,當i==0||j==0時,v[0][j]||v[i][0]==0,
//然後選區i=1時j分別選取1,2,3,4,5,6,7,8時的值
/* v[1][1] = 0:第乙個物品的大小為2,而一級包的容量只有1無法裝入,
此時有v[1][1] == v[0][1] == 0,因為第乙個物品無法裝那相當於物品少了一件
*/ /*
v[1][2] = 2:一級包容量加1可以裝入第乙個物品,此時有兩種情況,
第一:我選擇裝,但裝了價值不一定是最大的,
第二,我選擇不裝,去裝留著空間去裝後面價值更大的物品,此時v[1][2]=max(v[0][2],v[0][2-big[1]]+value[1])結果為2
*///.....
/*v[4][8]:第四個商品的大小為5<8,因此v[4][8]=max(v[3,8],v[0][8-big[4]]+value[4])
v[3][8]:第三個物品大小為4<8,因此v[3][8] = max(v[2,8],v[2,8-big-[3]]+value[3])
.......
最後算出v[4][8] = 10;
*/ #include #include #include using namespace std;
int main()
; int big = ;
int bag = 8;
int v[5][9] = ;
for(int i=1; i<5; i++) }
printf("v[4][8] = %d",v[4][8]);
}
執行結果:
一些基本演算法
1.最大奇數約數int fun int x return x int main 2 找出第二大的數,要求用for遍歷一遍const int minnum 0x80000000 int find 2 k int arr,int n else if arr i sec return sec void m...
C語言的一些基本演算法
天文學上的潤年 原理 年數能整除於 4且不能整除 100或者可以整除 400,下面用標準 c語言的兩種實現方式 1 平潤年的判斷 include int main void else return0 2 平潤年的判斷 include int main void else return0 3 素數的判...
C 一些排序演算法
氣泡排序 學語言要花大力氣學資料結構和演算法。using system namespace bubblesorter j public class mainclass bubblesorter sh new bubblesorter sh.sort iarrary for int m 0 m選擇排序...