zoukankan      html  css  js  c++  java
  • 简单数据处理:最大公约数,树根,鸡兔同笼,电梯,路边的树,大数的位数,会绕圈的数,K尾数


    #include <stdio.h>
    #include <string.h>
    
    void convert()
    {
    	char strb[200];
    	int i;
    	while(1)
    	{
    		gets(strb);
    		if(strcmp(strb,"endofinput")==0) return;
    		gets(strb);
    		for(i=0;i<200;i++)
    		{
    			if(strb[i]>='a'&& strb[i]<='z')
    			{
    				if(strb[i]>'u') strb[i]=strb[i]-21;
    				else strb[i]=strb[i]+5;
    			}
    		}
    		puts(strb);
    		gets(strb);
    	}
    }
    
    void gcd()//最大公约数
    {
    	int a,b,r;
    	while(~scanf("%d %d",&a,&b))
    	{
    		r=a%b;
    		while(r!=0)
    		{
    			a=b;
    			b=r;
    			r=a%b;
    		}
    		printf("%d
    ",b);
    	}
    }
    
    void gcd_n()
    {
    	int a,b,r,n=3,i;
    	scanf("%d",&b);
    	for(i=0;i<n;i++)
    	{
    		scanf("%d",&a);
    		r=a%b;
    		while(r!=0)
    		{
    			a=b;
    			b=r;
    			r=a%b;
    		}
    	}
    	printf("%d
    ",b);
    }
    
    void shugen()//求数根
    {
    	int s,flag=0,root=0,root1;
    	while(~scanf("%d",&s))
    	{
    		while(s!=0)
    		{
    			root+=s%10;
    			s/=10;
    			if(s==0) flag=1;
    		}
    		root1=root;
    		if(flag=1)
    		{
    				while(root>=10)
    				{
    					root1=0;
    					while(root!=0)
    					{
    						root1+=root%10;
    						root/=10;
    					}
    				}
    			
    			printf("%d
    ",root1);
    			flag=0;
    			root=0;
    		}	
    	}
    }
    
    void shugen1()
    {
    	int m,root;
    	while(~scanf("%d",&m))
    	{
    		do{root=0;
    			while(m!=0)
    			{
    				root+=m%10;
    			    m/=10;
    			}
    			m=root;
    		}while(root>=10);
    		printf("%d
    ",root);
    	}
    }
    
    void jttl()//鸡兔同笼
    {
    		int feet;
    	while(~scanf("%d",&feet))
    	{
    		if(feet%2!=0) printf("0	0
    ");
    		else {
    			if(feet%4!=0) printf("%d	%d
    ",feet/4+1,feet/2);
    			else printf("%d	%d
    ",feet/4,feet/2);
    		}
    	}
    }
    
    void dianti()//电梯算法
    {
    	int n,from,i,to,time;
    	while(~scanf("%d",&n))
    	{
    		from=0;
    		time=0;
    		for(i=0;i<n;i++)
    		{
    			scanf("%d",&to);
    			if(from>to) time+=(from-to)*4+5;
    			else if(to>from) time+=(to-from)*6+5;
    			from=to;
    		}
    		printf("%d",time);
    	}
    }
    
    void lbdshu()//路边的树
    {
    	int a[1000];
    	int len,n,i,start,end,count=0;
    	while(~scanf("%d %d",&len,&n))
    	{
    		for(i=0;i<1000;i++) a[i]=1;
    		for(i=0;i<n;i++)
    		{
    			scanf("%d %d",&start,&end);
    			for(start;start<=end;start++)
    				a[start]=0;
    		}
    		for(i=0;i<=len;i++)
    			if(a[i]==1) count++;
    		printf("%d",count);
    	}
    
    }
    
    void dsdws()//大数的位数
    {
    	long num,i;
    	double n;
    	while(~scanf("%d",&num))
    	{
    		n=1.0;
    		for(i=1;i<=num;i++)
    			n+=log10(i);
    		printf("%ld
    ",(long)n);
    	}
    }
    
    int addSqrt(int num)//会绕圈的数
    {
    	int sum=0,i;
    	while(num!=0)
    	{
    		i=num%10;
    		num/=10;
    		sum+=i*i;
    	}
    	return sum;
    }
    
    void rqds()//会绕圈的数
    {
    	int num,a[100],i,j,flag;
    	while(~scanf("%d",&num))
    	{
    		a[0]=num;
    		i=0;
    		flag=0;
    		while(flag==0)
    		{
    			i++;
    			num=addSqrt(num);
    			a[i]=num;
    			for(j=0;j<i;j++)
    			{
    				if(a[j]==num) {flag=i;break;}
    			}
    		}
    		for(i=1;i<=flag;i++)
    			printf("%d	",a[i]);
    		printf("
    ");
    	}
    }
    /*会绕圈的树
    int circleNum(int m)
    {
    	int n,sum=0;
    	while(m!=0)
    	{
    	n=m%10;
    	m/=10;
    	sum+=n*n;
    	}
    	return sum;
    }
    
    int main()
    {
    	int m,a[100],i,k,flag;
    	while(~scanf("%d",&m))
    	{
    		flag=1;
    		if(m==0) break;
    		else
    		{
    			for(i=0;i<100;i++) a[i]=0;
    			a[0]=m;
    			i=1;
    			while(flag==1)
    			{
    				m=circleNum(m);
    				for(k=0;k<=i;k++) 
    				{
    					if(a[k]==m) {flag=0;break;}
    				}
    				a[i]=m;
    				i++;
    			}
    			for(i=0;i<m;i++) printf("%d ",a[i]);
    			printf("
    ");
    		}
    	}
    }
    */
    void equalK()//K尾数相等
    {
    	int num,i,sum,a[1000],f;
    	while(~scanf("%d",&num))
    	{
    		sum=1;
    		
    		f=0;
    		if(num>=1000)
    		{num%=1000;f=1;}
    		for(i=0;i<1000;i++)
    			a[i]=0;
    		i=0;
    		while(1)
    		{		
    			i++;
    			sum*=num;
    			if(f==1||sum>=1000)
    			{
    				sum=sum%1000;
    				if(a[sum]==0) a[sum]=i;
    				else break;
    				f=1;
    			}
    			
    		}
    		printf("%d %d
    ",a[sum],i);
    	}
    }

  • 相关阅读:
    git 获取之前某个版本
    mysql默认查询顺序
    tp5链式查询fetchSql(true)方法
    微信中关闭网页输入内容时的安全提示
    SourceTree + BeyondCompare 配置 + 使用教程
    SourceTree 免登录跳过初始设置
    git 常规发布流程
    Git常用操作命令
    手动安装phpRedisAdmin
    docker-compose快速搭建lnmp+redis服务器环境
  • 原文地址:https://www.cnblogs.com/wangxueliang/p/9346503.html
Copyright © 2011-2022 走看看