shenminer

导航

 

1.题目:判断牛牛现在的方向?出门时面向北方
   输入:转方向的次数N,
             长度为N的字符串,由L,R组成,L表示左转,R表示右转;

  输出:   此时面朝的方向
  分析:统计R,L的数量,相减后,取4的余数,即往那个方向转的次数
         (一次R,一次L,相当于没转,4次R或L也相当于没转)

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    while(cin>>n)
    {
        char a[n];
        int Lnum=0,Rnum=0;
        for(int i=0;i<n;i++)
        {
            cin>>a[i];
            if(a[i]=='L')
              Lnum++;
            else
              Rnum++;
        }
        int temp=0;
        if(Lnum>Rnum)
        {
          temp=(Lnum-Rnum)%4;
          switch(temp){
              case 1:cout<<'W'<<endl; break;
            case 2:cout<<'S'<<endl; break;
            case 3:cout<<'E'<<endl; break;
            default:cout<<'N'<<endl; 
          }
        }
        else if(Lnum<Rnum)
        {
          temp=(Rnum-Lnum)%4;
          switch(temp){
              case 1:cout<<'E'<<endl; break;
            case 2:cout<<'S'<<endl; break;
            case 3:cout<<'W'<<endl; break;
            default:cout<<'N'<<endl; 
          }
        }
        else
           cout<<'N'<<endl; 
    }
    return 0;
} 

2.题目:x,y均不大于n,并且x除以y的余数大于等于k ,求满足可能的数对数量(x,y)
   输入:n,k;
   输出:满足可能的数对数量
   分析:x%y>=k  -->  y>k&&x>=k
   问题:通过10%,算法复杂度有问题(坐等大牛给出优秀的算法)

  

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,k;
    while(cin>>n>>k)
    {
        int num=0;
        for(int i=k;i<=n;i++)
        {
            for(int j=k;j<=n;j++)
            {
                if(i%j>=k)
                   num++;
            }
         }
        cout<<num<<endl;
    }
    return 0;
}

3.题目:神奇数列 :1,12,123,1234,12345,123456,1234567...,求从数列l~r有多少个能被3整除;

  输入:l,r

  输出:数列l~r区间内,能被3整除的个数
  分析:各个数位的和是3的倍数的话,即该数能被3整除;

            后面出现10,11的增加,相当于加0,加1,故取3的余数来解决该问题

#include<bits/stdc++.h>
using namespace std;
int main(){
    int i,j;
    while(cin>>i>>j)
    {
        int num=0,remain=0;
        for(int k=1;k<=i;k++)
        {
            remain+=k%3;
        }
        for(int k=i;k<=j;k++)
        {
            remain+=k%3;
            if(remain%3==0) 
                num++;
        }
        cout<< num <<endl;
    }
    return 0;
} 

 

posted on 2018-03-28 09:56  shenminer  阅读(949)  评论(0编辑  收藏  举报