本文共 6147 字,大约阅读时间需要 20 分钟。
问题描述
输入一个正整数n,输出n!的值。 输入格式 输入包含一个正整数n,n<=1000。 加粗样式输出格式 输出n!的准确值。#includeusing namespace std;const int maxn = 1e4;int a[maxn]={ 1};int main(){ int n,d,t=1; scanf("%d",&n); for(int i=2;i<=n;++i){ d=0; for(int j=0;j =0;--i)printf("%d",a[i]);}
输入两个整数a和b,输出这两个整数的和。a和b都不超过100位。
#includeusing namespace std;const int maxn = 1e2+1;int a[maxn]={ 0};int b[maxn]={ 0};void transfer(string &s,int c[]){ int t=0; for(int i=s.size()-1;i>=0;--i){ c[t++]=s[i]-'0'; }}int main(){ string s; cin>>s; transfer(s,a); cin>>s; transfer(s,b); int d=0; for(int i=0;i 9){ a[i]-=10; d=1; }else d=0; } for(int i=maxn-1;i>0;--i){ if(a[i]!=0){ for(int t=i;t>=0;--t){ cout<
问题描述
Huffman树在编码中有着广泛的应用。在这里,我们只关心Huffman树的构造过程。 给出一列数{pi}={p0, p1, …, pn-1},用这列数构造Huffman树的过程如下: 1. 找到{pi}中最小的两个数,设为pa和pb,将pa和pb从{pi}中删除掉,然后将它们的和加入到{pi} 中。这个过程的费用记为pa + pb。 2. 重复步骤1,直到{pi}中只剩下一个数。 在上面的操作过程中,把所有的费用相加,就得到了构造Huffman树的总费用。 本题任务:对于给定的一个数列,现在请你求出用该数列构造Huffman树的总费用。 输入格式 输入的第一行包含一个正整数n(n<=100)。 接下来是n个正整数,表示p0, p1, …, pn-1,每个数不超过1000。#includeusing namespace std;int main(){ priority_queue ,greater > q; int n,d; scanf("%d",&n); for(int i=0;i 1){ d = q.top();q.pop(); d+=q.top();q.pop(); sum+=d; //printf("%d ",d); q.push(d); } printf("%d",sum);}
问题描述
给定一个n*n的棋盘,棋盘中有一些位置不能放皇后。现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都不在同一行、同一列或同一条对角线上,任意的两个白皇后都不在同一行、同一列或同一条对角线上。问总共有多少种放法?n小于等于8。 输入格式 输入的第一行为一个整数n,表示棋盘的大小。 接下来n行,每行n个0或1的整数,如果一个整数为1,表示对应的位置可以放皇后,如果一个整数为0,表示对应的位置不可以放皇后。#includeusing namespace std;const int maxn = 10;int g[maxn][maxn];// 1 可以放,0 不可以放 2,黑,3 白int n,ans;int row1[maxn];int row2[maxn];bool check(int t,int col,int row[]){ for(int i=0;i
问题描述
给定当前的时间,请用英文的读法将它读出来。 时间用时h和分m表示,在英文的读法中,读一个时间的方法是: 如果m为0,则将时读出来,然后加上“o’clock”,如3:00读作“three o’clock”。 如果m不为0,则将时读出来,然后将分读出来,如5:30读作“five thirty”。 时和分的读法使用的是英文数字的读法,其中0~20读作: 0:zero, 1: one, 2:two, 3:three, 4:four, 5:five, 6:six, 7:seven, 8:eight, 9:nine, 10:ten, 11:eleven, 12:twelve, 13:thirteen, 14:fourteen, 15:fifteen, 16:sixteen, 17:seventeen, 18:eighteen, 19:nineteen, 20:twenty。 30读作thirty,40读作forty,50读作fifty。 对于大于20小于60的数字,首先读整十的数,然后再加上个位数。如31首先读30再加1的读法,读作“thirty one”。 按上面的规则21:54读作“twenty one fifty four”,9:07读作“nine seven”,0:15读作“zero fifteen”。 输入格式 输入包含两个非负整数h和m,表示时间的时和分。非零的数字前没有前导0。h小于24,m小于60。#includeusing namespace std;string msg[] ={ "zero","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen","twenty"};int main(){ int h,m; cin>>h>>m; if(h<21)cout<
问题描述
回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。 输入格式 输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。#includeusing namespace std;const int MAXN = 202;int a[MAXN][MAXN];int n,m;int main(){ scanf("%d%d",&n,&m); for(int i=0;i
问题描述
话说这个世界上有各种各样的兔子和乌龟,但是研究发现,所有的兔子和乌龟都有一个共同的特点——喜欢赛跑。于是世界上各个角落都不断在发生着乌龟和兔子的比赛,小华对此很感兴趣,于是决定研究不同兔子和乌龟的赛跑。他发现,兔子虽然跑比乌龟快,但它们有众所周知的毛病——骄傲且懒惰,于是在与乌龟的比赛中,一旦任一秒结束后兔子发现自己领先t米或以上,它们就会停下来休息s秒。对于不同的兔子,t,s的数值是不同的,但是所有的乌龟却是一致——它们不到终点决不停止。 然而有些比赛相当漫长,全程观看会耗费大量时间,而小华发现只要在每场比赛开始后记录下兔子和乌龟的数据——兔子的速度v1(表示每秒兔子能跑v1米),乌龟的速度v2,以及兔子对应的t,s值,以及赛道的长度l——就能预测出比赛的结果。但是小华很懒,不想通过手工计算推测出比赛的结果,于是他找到了你——清华大学计算机系的高才生——请求帮助,请你写一个程序,对于输入的一场比赛的数据v1,v2,t,s,l,预测该场比赛的结果。 输入格式 输入只有一行,包含用空格隔开的五个正整数v1,v2,t,s,l,其中(v1,v2<=100;t<=300;s<=10;l<=10000且为v1,v2的公倍数)#includeusing namespace std;int main(){ int v1,v2,t,s,l; scanf("%d%d%d%d%d",&v1,&v2,&t,&s,&l); int l1=0,l2=0;//兔子,乌龟跑过的距离 int flag=false;//兔子是否在休息 int d;//兔子休息时长 int cnt=0;//消耗时长 while(true){ cnt++; if(flag){ d++; if(d==s)flag=false; }else l1+=v1; l2+=v2; //printf("%d %d %d %d\n",cnt,d,l1,l2); if(l1==l&&l1==l2){ printf("D"); break; }else if(l1==l){ printf("R"); break; }else if(l2==l){ printf("T"); break; } if(l1-l2>=t&&flag==false){ flag=true; d=0; } } printf("\n%d",cnt); return 0;}
问题描述
给定一个以秒为单位的时间t,要求用“::#includeusing namespace std;int main(){ int n; cin>>n; printf("%d:%d:%d",n/3600,n%3600/60,n%60); return 0;}
问题描述
给定两个仅由大写字母或小写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况之一: 1:两个字符串长度不等。比如 Beijing 和 Hebei 2:两个字符串不仅长度相等,而且相应位置上的字符完全一致(区分大小写),比如 Beijing 和 Beijing 3:两个字符串长度相等,相应位置上的字符仅在不区分大小写的前提下才能达到完全一致(也就是说,它并不满足情况2)。比如 beijing 和 BEIjing 4:两个字符串长度相等,但是即使是不区分大小写也不能使这两个字符串一致。比如 Beijing 和 Nanjing 编程判断输入的两个字符串之间的关系属于这四类中的哪一类,给出所属的类的编号。 输入格式 包括两行,每行都是一个字符串#includeusing namespace std;char toLower(char c){ if(c<='Z')c+=32; return c;}int stringCmp(string &s1, string &s2){ for(int i=0;i >s1>>s2; if(s1.size()!=s2.size())cout<<1; else{ if(s1==s2)cout<<2; else cout<
问题描述
FJ在沙盘上写了这样一些字符串: A1 = “A” A2 = “ABA” A3 = “ABACABA” A4 = “ABACABADABACABA” … … 你能找出其中的规律并写所有的数列AN吗? 输入格式 仅有一个数:N ≤ 26。#includeusing namespace std;int main(){ string s = "A"; int n; cin>>n; for(int i=1;i
转载地址:http://weden.baihongyu.com/