阶乘因式分解&&蛇形填数

来源:互联网 发布:机关网络舆情工作总结 编辑:程序博客网 时间:2024/05/21 11:19
题目1:阶乘因式分解(一)
    给定两个数m,n,其中m是一个素数。
    将n(0<=n<=10000)的阶乘分解质因数,求其中有多少个m。

    例:n=16,m=2,则输出15


题目2:蛇形填数
    在n*n方阵里填入1,2,...,n*n,要求填成蛇形。例如n=4时方阵为:
    10 11 12 1
     9 16 13 2
     8 15 14 3
     7  6  5 4   

     输入n,输出方阵

代码:

#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAX 100#define CHOISE 0 #if CHOISE int analysis(int n,int m){int sum=0;while (n!=0){sum += n/m;n = n/m;}return sum;}int main(void){int n,m,res;printf("please input n and m\n");scanf("%d %d",&n,&m);res = analysis(n,m);printf("the count is %d\n",res);return 0;}#elsevoid snakeArray(int a[][MAX],int n){int x=0;int y=n-1;int val=1;int i,j;while (val<=n*n){while (x<n && !a[x][y])a[x++][y] = val++;x--,y--;while (y>-1 && !a[x][y])a[x][y--] = val++;x--,y++;while (x>-1 && !a[x][y])a[x--][y] = val++;x++,y++;while (y<n && !a[x][y])a[x][y++] = val++;x++,y--;}for (i=0;i<n;i++){for (j=0;j<n;j++)printf("%3d",a[i][j]);printf("\n");}}int main(void){int n;int a[MAX][MAX];memset(a,0,sizeof(a));printf("please input the number:\n");scanf("%d",&n);snakeArray(a,n);return 0;}#endif

0 0
原创粉丝点击