• 算法竞赛_入门经典_刘汝佳__(2)


    1,有几位数字

    #include<stdio.h>
    
    
    int main_2_1_digit(){
    	int n;
    
    	while(scanf("%d",&n)){
    		int count = 0;
    		if(n==0)
    			count = 1;
    		while(n){
    			count++;
    			n/=10;
    		}
    		
    		printf("%d
    ",count);
    	}
    	return 0;
    }


    2。三位数的三个数字

    #include<stdio.h>
    
    
    int main_2_2_daffodil(){
    
    	int i,j,k;
    
    	for(int n=100;n<=999;n++){
    		i = n % 10;
    		j = (n/10) % 10;
    		k = (n/100) % 10;
    
    		if( n == i*i*i + j*j*j + k*k*k){
    			printf("%d
    ",n);
    		}
    	}
    
    
    	return 0;
    }


    3,韩信点兵

    #include<stdio.h>
    
    int main_2_3_hanxin(){
    
    	int a,b,c;
    	int i,sum;
    
    	while(scanf("%d%d%d",&a,&b,&c)){
    		sum = -1;
    		for(i=10;i<=100;i++){
    			if(i%3 == a && i%5 == b && i%7 == c){
    				sum =i;
    				break;
    			}
    		}
    		
    		if(sum == -1){
    			printf("No answer
    ");
    		}else{
    			printf("%d
    ",sum);
    		}
    	}
    
    	
    	return 0;
    }


    4。打印倒三角

    #include<stdio.h>
    
    int main_2_4_triangle(){
    
    	int n;
    	int i,j;
    
    	while(scanf("%d",&n)){
    		
    		for(i=n;i>0;i--){
    			for(j=1;j < n;j++){
    				if(j+i >= n+1){
    					printf("#");
    				}else{
    					printf(" ");
    				}
    			}
    
    			printf("#");
    
    			for(j=n+1;j < 2*n;j++){
    				if(j-i <= n-1){
    					printf("#");
    				}else{
    					printf(" ");
    				}
    			}
    			
    			printf("
    ");
    		}
    	
    	}
    
    	
    	return 0;
    }


    5,输入n个数,比m小的

    #include<stdio.h>
    
    int main_2_5_stat(){
    	int arr[1000];
    	int n,m;
    	int i;
    	int count;
    
    	while(scanf("%d",&n)){
    		for(i=0;i<n;i++){
    			scanf("%d",&arr[i]);
    		}
    		scanf("%d",&m);
    		
    		count=0;
    		for(i=0;i<n;i++){
    			if(m > arr[i]){
    				count++;
    			}
    		}
    
    		printf("%d
    ",count);
    	}
    
    	
    	return 0;
    }


    6。数aabb

    #include<stdio.h>
    #include<math.h>
    
    int main_aabb_complete(){
    
    	int a,b,n;
    	double m;
    
    	for(a=1;a<=9;a++){
    		for(b=0;b<=9;b++){
    			n=a*1100 + b*11;
    		
    			m=sqrt((double)n);
    
    			//推断m是否为整数
    			//进行浮点数比較的时候要考虑浮点误差
    			if(floor(m+0.5) == m){
    				printf("%d     %lf
    ",n,m);
    			}
    		}
    	}
    	
    
    	getchar();
    	return 0;
    }


    7,浮点数陷阱

    #include<stdio.h>
    
    
    int main_float_trap(){
    
    	double i;
    
    	for(i=9;i!=10;i+=0.1){
    	
    		printf("%.1lf
    ",i);
    	
    		if(i>10){
    			break;
    		}
    	}
    
    	
    	return 0;
    }


    8,varble_no_init

    #include<stdio.h>
    
    int main_varble_no_init(){
    
    	int a,b,c;
    
    	printf("%d %d %d",a,b,c);
    
    	scanf("%d",&a);
    
    	return 0;
    
    }


    9,全排列

    #include<stdio.h>
    
    
    int n = 0;
    void swap(int *a,int *b){
    	int m = *a;
    	*a = *b;
    	*b = m;
    }
    
    void perm(int list[],int k,int m){
    	int i;
    
    	if(k > m){
    		for(i=0;i<=m;i++){
    			printf("%d ",list[i]);
    		}
    		printf("
    ");
    		n++;
    	}else{
    		for(i=k;i<=m;i++){
    			swap(&list[k],&list[i]);
    			perm(list,k+1,m);
    			swap(&list[k],&list[i]);
    		}
    	}
    }
    
    int main_quan_pai_lie_version_1(){
    	int list[] = {1,2,3,4,5};
    
    	perm(list,0,4);
    
    	printf("total: %d
    ",n);
    
    	return 0;
    }
    




  • 相关阅读:
    《大道至简》第一章读后感,java伪代码形式
    chm文件内容无法显示的问题
    Windows下.py文件右键菜单的增删
    在ArchLinux中安装VMWare Workstation
    笔记本屏幕锁定
    pacman 日志摘要
    数据库事务特性和隔离级别
    数据库范式以及ER图
    《剑指offer》算法题第四天
    《剑指offer》算法题第二天
  • 原文地址:https://www.cnblogs.com/mqxnongmin/p/10509089.html
Copyright © 2020-2023  润新知