郑轻oj题解1061——1070

hello啊大家!!让我们继续快乐地刷题吧!!!加油!!  !

分享给大家一句我喜欢的话

【因为瑕疵鲜活 好过虚假完美】

1061——顺序输出各位数字

#include 
int main()
{
    int n;
    int h;
    scanf("%d",&n);
    h=1;
    while(n/(h*10)>0)
    {
        h*=10;
         
    }
    while(h>0)
    {
        printf("%d ",n/h);
        n=n%h;
        h=h/10;
    }
    return 0;
}

1062——最大公约数

#include 
int main()
{
    int a,b;
    scanf("%d %d",&a,&b);
    int c;
	while(b!=0)
	{
		c=a;
    	a=b;
    	b=c%b;
	}
	printf("%d",a);
    return 0;
}	

1063——最大公约与最小公倍

#include 
#include 
  
int main()
{
    int a, b, c, x, y;
    scanf("%d%d", &a, &b);
    x=a;
    y=b;
  
    while(a%b!=0)
    {
        c=a;
        a=b;
        b=c%a;
    }
    a=x/b*y;
    printf("%d %d", b, a);
    return 0;
}

1064——加密字符

#include  
int main()
{
    char ch;
    scanf("%c", &ch);
  
    while(ch!='@')
    {
        if(ch>='A'&&ch<='Z')
            ch=ch+32;
             
        if(ch>='a'&&ch<='y')
            ch=ch+1;
             
        else if(ch=='z')
            ch='a';
             
        printf("%c", ch);
        scanf("%c", &ch);
    }
    return 0;
}

1065——统计数字字符个数

#include 
int main()
{
    char ch;
    int count=0;
    scanf("%c",&ch);
    while(ch!='\n')
    {
        if(ch>='0'&&ch<='9')
        count++;
        scanf("%c",&ch);
    }
    printf("%d",count);
     
    return 0;
}

1066——字符分类统计

#include 
int main()
{
    char ch;
    int letter=0,digit=0,other;
    scanf("%c",&ch);
    while(ch!='\n')
    {
        if(ch>='0'&&ch<='9')
        {
        	digit++;
		}
		else if(ch>='A'&&ch<='Z'||ch>='a'&&ch<='z')
		{
			letter++;
		}
		else 
		{
			other++;
		}
        scanf("%c",&ch);
    }
    printf("letter:%d\ndigit:%d\nother:%d\n",letter,digit,other);
     
    return 0;
}

1067——有问题的里程表

#include 
int main()
{
    int num;
    scanf("%d",&num);
    int i,n;
    n=0;
    for(i=1;i<=num;++i)
    {
    	if(i%10!=4&&i/10%10!=4&&i/100%10!=4)
    	{
    		n++;
		}
		
	}
	printf("%d",n);
    return 0;
}

1068——二进制数

#include 
#include 
int main()
{
    char ch;
    int d=0;
    while(ch=getchar(),ch!='\n')
    {
    	d=d*2+(ch-'0');
	}
	printf("%d\n",d);
    return 0;
}

1069——向Z同学学习

#include 
int main()
{
    int m,k;
    scanf("%d %d",&m,&k);
    int day=0,i;
    for(i=1;;++i)
    {	
    	day+=1;
    	m-=1;
		if(day==k)
		{
			day=0;
			m+=1;
		}
		if(m==0)
		{
			printf("%d",i);
			break;
		}	
	}
	
    return 0;
}

1070——小汽车的位置

#include
int main()
{
    int x=0,y=0;
    int m,t,w=0,n=0;
    while(scanf("%d %d",&t,&m))
    {
        switch(n)
        {
            case 0:y+=10*(t-w);break;
            case 1:x+=10*(t-w);break;
            case 2:y-=10*(t-w);break;
            case 3:x-=10*(t-w);break;
        }
        if(m==3) break;
        else if(m==1) n=n-1;
        else if(m==2) n=n+1;
        n=(n+4)%4;
        w=t;
    }
    printf("%d %d",x,y);
}

郑轻oj的这十道题,相较于之前的题,难度又增加了一些,需要我们将循环结构与分支结构构建在一起来解答问题,这里出现了经典的题,求最大公约数和最小公倍数,我用的是辗转相除法,还有很多其他的方法也可以解决。祝大家进步!   !   !

你可能感兴趣的:(算法,数据结构,c语言)