涼心的比賽(003)
順序比較混亂,是按照補題順序來的。
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 簽到
思路:
各個領導人必須有相同數目的員工。否則不成立!
#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 穿越鐵門題目
思路:
判斷小人有沒有穿過邊界線,如果穿過了,那麼就要收費。
判斷的依據是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;
}