P1200 [USACO1.1]你的飞碟在这儿Your Ride Is Here 题解(简单字符串)string

  我会写本题的题解,是因为本题拥有一定的代表性,对于我这种菜鸡来说!!!!哈哈!虽然这题好像也不难!

由于本人接触C语言时间还不是太长,前段时间也并没有把重心放在字符串上,所以刚刚看到这题时也是挺懵的;

要完成这道题目,首先呢!可以注意一下ASCII码!只要完成ASCII码的转换,就能轻松AC!

  还要注意一下string的用法!(下面先稍微介绍一下string的,来自百度百科)手动滑稽!

   string是C++、javaVB等编程语言中的字符串,字符串是一个特殊的对象,属于引用类型。在javaC#中,String类对象创建后,字符串一旦初始化就不能更改,因为string类中所有字符串都是常量,数据是无法更改,由于string对象的不可变,所以可以共享。对String类的任何改变,都是返回一个新的String类对象。 C++标准库中string类以类型的形式对字符串进行封装,且包含了字符序列的处理操作。

  string的用法,用双引号引起来的几个字符,如"Abc","一天".

  string类是不可变( final)的,对String类的任何改变,都是返回一个新的String类对象。这样的话把String类的引用传递给一个方法,该方法对String的任何改变,对原引用指向的对象没有任何影响,这一点和基本数据类型相似。  
1
2
3
4
string s1,s2;
s1= "abc" ;
s2=s1;
s2= "def" ;

                               这样操作之后s1是"abc",s2是"def".

最后附上本题的题解!(直接AC洛谷大佬的题解,本人能力有限!!)

#include <iostream>
  #include <cstring>
  using namespace std ;

  string a , b ; int ans = 1 , num = 1 ; //这里要注意起始值必须为1,要是0的话所有的数乘出来都是0了....

  main(){
      cin >> a >> b ; // 输入
      for( int i = 0 ; i < a.length() ; i ++ ) ans *= a[i] - '@' ;
      // @的编号为64 ,A的编号65-@的编号64不就是所对应的英语字母序号了嘛...
      for( int i = 0 ; i < b.length() ; i ++ ) num *= b[i] - '@' ;
      // 同上
      ans %= 47 , num %= 47 ; // 根据题意,mod 47
      if( ans == num ) cout << "GO" ;
      else cout << "STAY" ; //输出
      return 0 ; //完美结束

猜你喜欢

转载自www.cnblogs.com/fanwentao/p/11626261.html