zoukankan      html  css  js  c++  java
  • 数制转换问题,确定数制,最长子串,统计字符数

    void jinzhiConvert()//p进制转换为R进制
    {
    	int p,r,len,i,k,d,temp;
    	char s[10],mod[10];
    	while(~scanf("%d %d %s",&p,&r,&s))
    	{
    
    		len=strlen(s);
    		k=1;
    		d=0;
    		for(i=len-1;i>=0;i--)//p进制转换为10进制
    		{
    			if(s[i]>='0'&&s[i]<='9')
    				d+=(s[i]-'0')*k;
    			if(s[i]>='A'&&s[i]<='F')
    				d+=(s[i]-'A'+10)*k;
    			k*=p;
    		}
    		
    	/*	for(i=0;i<10;i++)
    			mod[i]=0;
    
    		for(i=0;i<10;i++)//10进制转为r进制
    		{
    			if(r>0&&r<=9)
    			mod[i]=d%r+'0';
    			if(r>=10&&r<=16)
    			{
    				mod[i]=d%r-10+'A';
    			}
    			d/=r;
    			if(d<r) {mod[i+1]=d+'0';break;}
    		}
    		for(i=10;i>=0;i--)
    		{
    			if(mod[i]!=0) {printf("%s",mod);break;}
    		}*/
    		for(i=0;i<10;i++)
    			mod[i]=0;
    
    		mod[10]='';
    		i=9;
    		while(d!=0)//10进制转为r进制
    		{
    			temp=d%r;
    			if(temp<=9) mod[--i]=temp+'0';
    			else mod[--i]=temp-10+'A';
    			d/=r;
    		}
    
    		for(i=0;i<10;i++)
    		{
    			if(mod[i]!=0) {printf("%s",&mod[i]);break;}
    		}
    	}
    }
    
    /**********确定数制*************/
    /**                           **/
    /**                           **/
    int maxdigit(int m)
    {
    	int maxd=0,k;
    	while(m!=0)
    	{
    		k=m%10;
    		if(k>maxd)
    			maxd=k;
    		m=m/10;
    	}
    	return maxd;
    }
    
    int convertdecimal(int m,int k)
    {
    	int p,s;
    	s=0;
    	p=1;
    	while(m!=0)
    	{
    		s+=m%10*p;
    		m/=10;
    		p=p*k;
    	}
    	return s;
    }
    
    void defineShuzhi()
    {
    	int p,q,r,B,n,i,d,dp,dq,dr;
    	scanf("%d",&n);
    	for(i=0;i<n;i++)
    	{
    		scanf("%d %d %d",&p,&q,&r);
    		B=maxdigit(p);
    		d=maxdigit(q);
    		if(d>B)
    			B=d;
    		d=maxdigit(r);
    		if(d>B)
    			B=d;
    		for(B++;B<=16;B++)
    		{
    			dp=convertdecimal(p,B);
    			dq=convertdecimal(q,B);
    			dr=convertdecimal(r,B);
    			if(dp*dq==dr) break;
    		}
    
    		if(B>16) B=0;
    		printf("%d
    ",B);
    	}
    }
    /**                           **/
    /**                           **/
    /**********确定数制*************/
    
    
    void maxLenSubStr() //最长子串
    {
    		char str[100][101],minStr[101],subStr[101],revSubStr[101];
    	unsigned int i,j,t,m,n,substrlen,found,minlen;
    
    	scanf("%d",&t);
    	while(t--)
    	{
    		scanf("%d",&n);
    		minlen=101;
    		for(i=0;i<n;i++)
    		{
    			scanf("%s",str[i]);
    			if(strlen(str[i])<minlen)
    			{
    				minlen=strlen(str[i]);
    				m=i;
    			}
    		}
    		strcpy(minStr,str[m]);
    		substrlen=minlen;
    		while(substrlen>0)
    		{
    			for(i=0;i<=minlen-substrlen;i++)
    			{
    				strncpy(subStr,minStr+i,substrlen);
    				subStr[substrlen]='';
    				strncpy(revSubStr,minStr+i,substrlen);
    				revSubStr[substrlen]='';
    				strrev(revSubStr);
    				found=1;
    				for(j=0;j<n;j++)
    				{
    					if(strstr(str[j],subStr)==NULL&&strstr(str[j],revSubStr)==NULL)
    					{
    						found=0;
    						break;
    					}
    				}
    				if(found) break;
    			}
    			if(found) break;
    			substrlen--;
    		}
    		printf("%d
    ",substrlen);
    	}
    }
    
    void countStr()//统计字符数
    {
    	int a[26],n,i,j,len,max;
    	char s[50],alpha;
    	scanf("%d",&n);
    	for(i=0;i<n;i++)
    	{
    		scanf("%s",s);
    		
    		for(j=0;j<26;j++)
    			a[j]=0;
    
    		len=strlen(s);
    
    		for(j=0;j<len;j++)
    		{
    			a[s[j]-'a']++;
    		}
    
    		max=a[0];
    		alpha='a';
    		for(j=1;j<26;j++)
    			if(a[j]>max) 
    			{
    				max=a[j];
    				alpha=j+'a';
    			}
    		printf("%c %d
    ",alpha,max);
    	}
    }

  • 相关阅读:
    我的家庭保险方案推荐
    如何修改Total Commander配件文件的位置
    豆瓣统计-2015
    RESTful API接口设计规范
    正则表达式中 的$1,$2与实际应用
    查询排序:order by case when理解、在order By子句中使用case语句的理解
    架构设计:BFF和Serverless简介
    移动端1px细线解决方案总结
    SpringMVC中实体类属性is开头的字段返回JSON时自动去掉is开头的问题
    详解JS面向对象的三大特征之多态
  • 原文地址:https://www.cnblogs.com/wangxueliang/p/9346501.html
Copyright © 2011-2022 走看看