c语言经典算法
99乘法表
## include "stdio.h"
int main(){
int i,j, result;
for (i=1; i<10;i++){
for (j=1; j<10;j++){
if (j <= i){
result = j*i;
printf("%d*%d=%-3d", j,i,result);
}
}
printf("\n");
}
return 0;
}
兔子算法
#include "stdio.h"
/**
*
* 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,
* 小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
* 兔子的规律为数列1,1,2,3,5,8,13,21....
*
*
* @param month
* @return
*/
long fun(int month){
if (month ==1 || month==2){
return 1;
}else {
return fun(month -1 ) + fun(month -2 );
}
}
int main(){
int Mon;
long Num;
scanf("%d", &Mon);
Num = fun(Mon);
printf("第%d月共有%1d只\n", Mon, Num);
return 0;
}
1000之内所有完数
#include "stdio.h"
void main(){
/**
* 输出1000以内的所有完数
* 如果一个数恰好等于它的因子之和,则称该数为“完全数”。
*/
int m, n, r;
for (m = 1; m < 1000; m++){
int sum = 0;
for (n=1; n<m; n++){
if(m%n == 0){
sum += n;
}
}
if (sum == n){
printf("%d is wanshu:", n);
for (r = 1; r < sum; r++){
if (sum % r == 0){
printf("%d ", r);
}
}
printf("\n");
}
}
}
杨辉直角三角形
/*
* 1
1 1
1 2 1
*/
#include "stdio.h"
#define num 9 ////这里定义一个常量M
void main(){
int m, n ,a[num][num]; // //定义数组,循环变量
for (m=0;m<num;m++){ //外面的for表示行,总共是9行,输出9行
for (n=0;n<=m;n++){ //里面的控制输出的列数, 1,2,3,4,5...... 第几行就输出几列,比如第五行输出5列。
if(m==n || n==0){ //输出所有1的地方
a[m][n] = 1;
} else {
a[m][n] = a[m-1][n] + a[m-1][n-1]; //否则就输出其他地方,a[i][j] =上一行左边的数字+上一行右边的数字
}
printf("%d ", a[m][n]);
}
//杨辉直角三角形
printf("\n");
}
// printf("\n");
}
网友评论