补题2

A

就是把一个数无论有多少1,都在开头变为一个1.
(如果这个数是0的话输出0即可)

#include <cstdio>
 int one, zero;
  char str[MAXN];
   int main(int argc, char *argv[])
    {
    scanf("%*d%s", str);
for(int i = 0; str[i]; i++)
 if(str[i] == '1') one++;
  else zero++;
   if(one) putchar('1');
    else putchar('0');
 if(one) for(int i = 0; i < zero; i++)
  putchar('0');
 return 0; }




F

当时以为只要到达墙即
可实际上需要再行动一次才行。
此外因为y=x的特殊性这样问题转化为只要像:由y>=x变成y<x即可。或者y<=x变成y>x均可以计数一次。

#include<stdio.h>
int main() 
  {
    char str[99];
    char*s;
    s=str;
    int k=0,o=0,n,a=0,p=0;
    scanf("%d\n %s",n,str);
for(s=str;*s;s++)
 {
     if(*s=='R') o++;
     else if(*s=='U') p++; 
     if(p>o&&a==-1) k=k+1;
     if(p<o&&a==1)  k=k+1; 
     if(p != o)
	 {
	 	if(p>o) a=1;
	 	else a=-1;
	  } 
    }
    printf("%d\n", k);
    return 0;
 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值