涼心的比賽(003)

涼心的比賽(003)

順序比較混亂,是按照補題順序來的。

A 簽到

A題鏈接

思路:
由題意可知,11->1。所以最終的輸出結果只會有一個1;
而0的數目不定。因此本題輸出0爲主要突破口。

一開始莫名其妙老是卡住。就是不輸出結果。這個題目有很多問題,比如數據的輸入只能用字符類型,而不能用整數類型數組或者整數類型變量。


#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
    int n;
    cin>>n; 
    int sum=0;
    for(int i=0;i<n;i++)
    {
        char x;
        cin>>x;
        if(x-'0'==1)sum++;
    }
    if(sum==0)printf("0\n");
    else
    {
        printf("1");
        for(int i=1;i<=n-sum;i++)
            printf("0");
    }
    return 0;

}

E 簽到

E題鏈接

思路:
各個領導人必須有相同數目的員工。否則不成立!
#include<stdio.h>
int main()
{
	int n,i,t,count=0;
	scanf("%d",&n);
	for(i=1;i<n;i++)
	{
		t=n-i;
	    if(t%i==0)
		count++;
	} 
	printf("%d",count);
	
	return 0;
}
F 穿越鐵門題目

F題鏈接

思路:
判斷小人有沒有穿過邊界線,如果穿過了,那麼就要收費。
判斷的依據是U和R的關係。如果是U和R的走的步數相同,並且前一步和後一步的方向相同,那麼就要收費了~
#include<cstdio>
#include<iostream>
using namespace std;
int main()
{ 
    int coin=0,n,x=0,y=0,i;
    string s;
    cin>>n;	
	cin>>s;
	if((n<=2)&&(n>=1))
	cout<<"0";
	else if(n>2&&n<5)
	cout<<"1";
	else
	{
	for(i=0;i<n;i++)
	{
		if(s[i]=='U')
		y++;
		if(s[i]=='R')
		x++;
	if (x == y && s[i] == s[i + 1])//要考慮穿過來的話沒必要考慮x和y 直接看U R 
		coin++;
	}
	cout<<coin;
	}
	return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章