ios::sync_with_stdio(false);
cin.tie(0);
int f (string s, int x)//将x进制的数(字符串)转换为10进制
{
int res = 0;
//秦九韶算法
for(auto c : s)
res = res * x + c - '0';
return res;
}
int fun(string str)
{
int i,n;
n = str.size();
for(i=0;i<n;i++)
{
if(str[i]!=str[n-1-i])
{
return 0;
}
}
return 1;
}
char get(int x)
{
if(x<=9) return x+'0';
return x-10+'A';
}
string base(int n,int b)//n为输入整数,b为要转化的进制
{
string num;
while(n) //将十进制转化为b进制
{
num +=get(n % b); // 将求得的数转化为字符并加入到字符串中
n/=b;
}
reverse(num.begin(),num.end()); //将字符串倒序
return num;
}
int main()
{
cin >> x >> str;
while(cnt--)
{
str0 = str;
reverse(str0.begin(),str0.end());
ans = f(str, x) + f(str0, x);
i = 0;
str2 = base(ans, x);
if(fun(str2)) break;
else
{
str = str2;
}
}
if(cnt > 0) cout<<"STEP="<<30 - cnt;
else if(cnt == 0)
{
if(fun(str2)) cout<<"STEP="<<30;
else cout<<"Impossible!";
}
return 0;
}
int readint(){
int x=0,f=1; char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
return x*f;
}
#include <iostream>
#include <cstring>
#include <map>
using namespace std;
const int N = 2e6 + 10;
int T, n;
char st[N];
map<string, int> mp;
int main()
{
scanf("%[^\n]",st);// \n作为字符串输入的结束符
cin >> T;
string stt;
for (int i = 0; st[i]; i ++)
{
if(st[i] != ' ' || st[i] >= 65)//字母
stt += st[i];
if(st[i] == ' ')
{
i ++;
long long x = 0;
while(st[i] < 65 && st[i] != ' ') x = x * 10 + st[i] - 48;
mp[stt] += x;
i = i + 2;
stt.clear();
}
}
while(T --)
{
string s;
cin >> s;
cout<< mp[s]<<endl;
}
return 0;
}
成员属性设置为私有
优点1:将所有成员属性设置为私有,可以自己控制读写权限
优点2:对于写权限,我们可以检测数据的有效性
防卫式声明
#ifndef _FILENAME_
#define _FILENAME_
//...
#endif
//防卫式声明的作用是:防止由于同一个头文件被包含多次,而导致了重复定义。
有些函数在body定义,有些只是声明,在body外定义
inline(内联函数)
在body定义成为inline候选人。
比较快,但是有些函数编译器不能把它弄成inline,太复杂编译器不行
在后面出现不在本体,我们可以加inline
access level 访问级别
public:
private:
//需要数据被封装,外界看不到
protected
//可以交错出现
创建对象会调用构造函数, 通过对象调用某一个函数
构造函数(ctor)的名称和类名相同,它用来创建对象,没有返回值,赋值写构造函数虽然正确,但不大气,不正规,不快,我们应该用initialization(初值列,初始列)----
: re (r), im (i)
//数值设定两个阶段,初始化和赋值
不带指针的类一般不用写析构函数
构造函数可以有很多个重载(overloading)
把构造函数放在私有区(不可以被外界调用)sigleton的设计模式
参数的传递与返回值
尽量传引用(to const)