• 翁恺B站练习题目(持续更新中~~~)


    求符合条件的给定数集

    题目要求:给定不超过6的正整数A。考虑从A开始的连续4个数字。请输出所有由它们组成的无重数字的3位数。

    #include<stdio.h>
    int main()
    {
    	int A=0;
    	do{
    		scanf("%d",&A);
    	}while(A>=6);
    	int ret=0;
    	int max=(A+3)*100+(A+2)*10+(A+1);
    	int x,y,z;
    	int cnt=0;
    	for(x=A;x<=A+3;x++){
    		for(y=A;y<=A+3;y++){
    			for(z=A;z<=A+3;z++){
    				if(x!=y&x!=z&z!=y){	
    					ret=x*100+y*10+z;
    					printf("%d",ret);
    					cnt++;
    					if(cnt==6){
    						printf("
    ");
    						cnt=0;
    					}else{
    						printf(" ");
    					}
    			}
    			
    			}
    		}
    	}
    }
    

    视频讲解

    水仙花数

    题目要求:水仙花数是指一个N位正整数(N>=3) ,它的每个位上的数字的N次幕之和等于它本身。例如:153=13+53+ 33。本题要求编写程序,计算所有N位水仙花数

    #include<stdio.h>
    int main()
    {
    	int n;
    	scanf("%d",&n);
    	n=3;
    	int first=1;
    	int i=1;
    	while(i<n){
    		first*=10;
    		i++;
    	}
    	i=first;
    	
    	while(i<first*10){
    		int t=i;
    		int sum=0;
    		do{
    			int d=t%100;
    			t/=10;
    			int p=d;
    			int j=1;
    			while( j<n) {
    				p *= d;
    				j++;
    			}
    			sum+=p;
    			
    		}while(t>0);
    		if(sum==i){
    			printf("%d
    ",i);
    		}
    		i++;
    		
    	}
    }
    

    视频讲解

    九九乘法表

    题目要求:按照梯度输出九九乘法表

    #include<stdio.h> 
    main()
    {
    	int x,y,n;
    	scanf("%d",&n);
    	for(y=1;y<=n;y++){
    		for(x=1;x<=y;x++){
    			printf("%d*%d=%d",x,y,x*y);
    			if(x*y<10){
    				printf("   ");
    			} else{
    				printf("  ");
    			}
    		}
    		printf("
    ");
    	}
    }
    
    

    视频讲解

    统计素数并求和

    题目要求:本题要求统计给定整数M和N区间内素数的个数并对它们求和。

    #include<stdio.h>
    main()
    {
    	int m,n;
    	scanf("%d %d",&m,&n);
    	m=10;
    	n=31; 
    	int cnt=0;
    	int t=m;
    	int sum=0;
    	while(t<=n){//最大的这个循环意思是t++   循环的动作意思是判断t是否是素数,是的话就加上他 
    		int p;  //判断是否是素数的时候又要用到循环 
    		int is=1;
    		for(p=2;p<t;p++){//这个循环的意思是:在再大的循环里面有一个数,除以p++,判断是否为素数 
    			int q=t%p;
    			if(q==0){
    				is=0;
    				break;
    			}
    		}
    		if(is==1){
    			printf("%d
    ",t);
    			cnt++;
    			sum+=t;
    		}
    		
    		t++;
    		
    		
    	}
    	printf("cont is %d ,sum is %d",cnt,sum);
    }
    

    视频讲解

    求序列前n项和

    题目要求本题要求编写程序,计算序列2/1+3/2+5/3+8/5+...的前N项之和。注意该序列从第2项起,每项的分子是前一项分子与分母的和,分母是前一项的分子。

    #include<stdio.h>
    main()
    {
    	int n;
    	scanf("%d",&n); 
    	int j;
    	int up=2;
    	int down=1;
    	int i=0;
    	double sum=0;
    	for(j=1;j<=n;j++){
    		sum+=1.0*up/down;
    		i=up;
    		up+=down;
    		down=i;
    		printf("%d %d
    ",up,down);
    	}
    	printf("sum is %.2f",sum);
    }
    

    视频讲解

    正序分解

    题目要求:任意输入一个数,正序分解输出

    #include<stdio.h> 
    main() 
    {
    	int x;
    	scanf("%d",&x);
    	// 判断位数 
    	int mask=1;
    	int t=x;
    	do{
    		x/=10;
    		mask*=10;
    		printf("%d
    ",mask);
    	}while(x>9);
    	x=t;
    	// 拆解数
    	int d=0;
    	do{
    		d=x;
    		d/=mask;
    		printf("%d ",d);
    		x%=mask;
    		mask/=10;
    	} while(mask>0);
    	
    }
    

    视频讲解

    约分最简式(求最大公约数)

    提示:辗转相除法

    #include<stdio.h>
    int main()
    {
    	int dividend,divisor;
    	scanf("%d/%d",&dividend,&divisor);
    	
    	int a=dividend;
    	int b=divisor;
    	int t;
    	while(b>0){
    		t=a%b;
    		a=b;
    		b=t;
    	}
    	printf("%d/%d",dividend,divisor);
    	
    	return 0;
    	
    }
    

    视频讲解

    念数字

    提示:拆解一个数+负号处理+switch case

    #include<stdio.h> 
    int main()
    {
    	int x;
    	scanf("%d",&x);
    	
    	if(x<0){
    		printf("fu");
    		x=-x;
    	}
    	
    	int mask=1;
    	int t=x;
    	while(t>9){
    		t=/10;
    		mask*=10;
    	}
    	
    	do{
    		int d=x/mask;
    		switch(d){
    			case 0:printf('ling');break;
    			case 1:printf('yi');break;
    			case 2:printf('er');break;
    			case 3:printf('san');break;
    			case 4:printf('si');break;
    			case 5:printf('wu');break;
    			case 6:printf('liu');break;
    			case 7:printf('qi');break;
    			case 8:printf('ba');break;
    			case 9:printf('jiu');break;
    		}
    		if(mask>0)printf("");
    		x%=mask;
    		mask/=10;
    	}while(mask>0);
    	printf("
    ");
    
    	return 0;
    }
    

    视频讲解

  • 相关阅读:
    zoj 1671 Walking Ant【简单bfs】
    hdoj 2717 Catch That Cow【bfs】
    hdoj 1010 Tempter of the Bone【dfs查找能否在规定步数时从起点到达终点】【奇偶剪枝】
    poj 1321 棋盘问题【dfs】
    [LC] 124. Binary Tree Maximum Path Sum
    [LC] 113. Path Sum II
    [LC] 112. Path Sum
    [LC] 98. Validate Binary Search Tree
    [LC] 39. Combination Sum
    [LC] 159. Longest Substring with At Most Two Distinct Characters
  • 原文地址:https://www.cnblogs.com/oceaninfinite/p/12470594.html
Copyright © 2020-2023  润新知