网站怎么做网站地图,wordpress登陆没反应,好用建站模板,贵港网站设计上次呢#xff0c;我们留下了一道题#xff0c;今天我们来一起看一看#xff1a; 题目链接#xff1a;https://www.cnblogs.com/gaozirong/p/10547434.html 这是我写的程序#xff0c;大家可以对照参考一下#xff08;C#xff09;#xff1a; #includebits/stdc.h…上次呢我们留下了一道题今天我们来一起看一看 题目链接https://www.cnblogs.com/gaozirong/p/10547434.html 这是我写的程序大家可以对照参考一下C #includebits/stdc.h
using namespace std;
long long n,x,m;
long long f(long long a,long long k)
{//快速幂求a^kif(k0)return 1;if(k1)return a%n;if(k%20)return f((a%n)*(a%n)%n,k/2)%n;else return (f((a%n)*(a%n)%n,k/2)*(a%n))%n;
}
int main()
{long long k;cinnmkx;cout(x%n((m%n)*(f(10,k)%n)%n))%n;return 0;
} 今天我们来讲一讲进制首先进制是什么 进制也就是进位计数制是人为定义的带进位的计数方法有不带进位的计数方法比如原始的结绳计数法唱票时常用的“正”字计数法以及类似的tally mark计数。 对于任何一种进制---X进制就表示每一位置上的数运算时都是逢X进一位。 十进制是逢十进一十六进制是逢十六进一二进制就是逢二进一以此类推x进制就是逢x进位。 现在常用的是十进制、二进制、八进制和十六进制今天我们一起来看一看进制转换。 如何转换 就以十进制转换成二进制为例 例如十进制的115转换为二进制详见下图 十进制转换成二进制运用的是短除法。如果x进制转换为y进制就要先把x转换为十进制数然后在用十进制数转换为y进制数。 参考代码 参考代码分为几种不同的点供你们参考 //二进制转换成八进制
#includebits/stdc.h
using namespace std;
string num[]{0,1,2,3,4,5,6,7};
string f(string s)
{int sum0,j1;//j表示的是2的多少次幂 if(s.size()3)//这是边界求出s对应的十进制数{for(int is.size()-1;i0;i--){sum(s[i]-0)*j;j*2; }return num[sum];}string s1s.substr(s.size()-3,3);//截取最后三个字符string s2s.substr(0,s.size()-3);//截取前面的部分return f(s2)f(s1);
}
int main()
{string s;cins;coutf(s);return 0;
} //十六进制转换成二进制
#includebits/stdc.h
using namespace std;
string num[]{0000,0001,0010,0011,0100,0101,0110,0111,1000,1001,1010,1011,1100,1101,1110,1111};
//num[i]表示的是十六进制数i对应的二进制数
string f(string s)
{if(s.size()1){if(s[0]0s[0]9)//如果是数字对应的二进制数 return num[s[0]-0];return num[s[0]-A10];//处理字母 }string s1s.substr(s.size()-1,1);string s2s.substr(0,s.size()-1);return f(s2)f(s1);
}
int main()
{string s;cins;string Sf(s);while(S[0]0)//去除前导0 S.erase(0,1);coutS;return 0;
} //二进制转换成十六进制
#includebits/stdc.h
using namespace std;
string num[]{0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F};
string f(string str)
{if(str.size()4){int sum0,i1;for(int jstr.size()-1;j0;j--){sum(str[j]-0)*i;i*2;}return num[sum];}string s1str.substr(0,str.size()-4);string s2str.substr(str.size()-4,4);return f(s1)f(s2);
}
int main()
{string str;cinstr;coutf(str);return 0;
} //八进制转换成二进制
#includebits/stdc.h
using namespace std;
string num[]{000,001,010,011,100,101,110,111};
//num[i] 表示的是i对应的的二进制数
string f(string str)
{if(str.size()1)return num[str[0]-0];string s1str.substr(0,str.size()-1);string s2str.substr(str.size()-1,1);return f(s1)f(s2);
}
int main()
{string str;cinstr;string Sf(str);while(S[0]0)//去除前导0 S.erase(0,1);coutS;return 0;
} 今天的进制转换和上期的快速幂一定要复习哦转载于:https://www.cnblogs.com/gaozirong/p/10548843.html