问题描述
将LANQIAO中的字母重新排列,可以得到不同的单词,如LANQIAO、AAILNOQ等,注意这7个字母都要被用上,单词不一定有具体的英文意义。
请问,总共能排列如多少个不同的单词。
答案提交
这是一道结果填空的题,你只需要算出结果后提交即可。
本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
我的答案为5040❌
解析:第一个空有七种可能,第二个空有六种可能,以此类推故是7的阶乘5040,但由于本题中A出现了两次,故正确答案应该为A77/A22=5040/2=2520
扩展:需要“取出元素”和“对取出元素按一定顺序排成一列”两个过程的是Amn,有重复的地方要除去;
仅仅取出元素的是Cmn;
问题描述
在计算机存储中,12.5MB是多少字节?
答案提交
这是一道结果填空的题,你只需要算出结果后提交即可。
本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
答案为 13107200√
解析:1MB = 1024KB,1KB = 1024B,1kb为1024个字节
所以12.5MB = 12.5 * 1024 * 1024 = 12800KB * 1024 = 13107200 B
问题描述
由1对括号,可以组成一种合法括号序列:()。
由2对括号,可以组成两种合法括号序列:()()、(())。
由4对括号组成的合法括号序列一共有多少种?
答案提交
这是一道结果填空的题,你只需要算出结果后提交即可。
本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
答案为 14√
解析:可以编程序用函数实现遍历,若右括号数大于左括号数或者左括号数大于n就算遍历失败,函数返回,否则即时遍历成功,全局变量m加一统计
#include
int m=0;
work(int n,int k,int a[]){
int i,s=0,h=0;
if(k<n){
a[k]=2;//2代表左括号,1代表右括号
work(n,k+1,a);
a[k]=1;
work(n,k+1,a);
}
else {
for(i=0;i<n;i++){
printf("%d ",a[i]);
if(a[i]==2) s++;
else if(a[i]==1) h++;
if((h>s)||(s>n/2)){
printf("失败\n");
return 0;//若右括号数目多于左括号,则失败
}
}
printf("\n");
m++;//如果运行完全程都没有返回,则合法情况加一
}
return 0;
}
int main(){
int i,j,k;
int a[200];
int n;
printf("请输入括号对数:");
scanf("%d",&n);
n=n*2;
work(n,0,a);
printf("%d",m);
return 0;
}
注释”
本代码加了调试的部分在里面,可以更加清晰直观的查看遍历的结果以及失败的地方
一个包含有2019个结点的无向连通图,最少包含多少条边?
答案提交
这是一道结果填空的题,你只需要算出结果后提交即可。
本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
答案为 2018√
解析:无向连通图最少包含n-1条边,最多包含 n(n-1)/2条边。
强连通图(有向图)(任意两个顶点都是相互可达)最少包含n条边,最多包含n(n-1)条边
问题描述
给定三个整数 a, b, c,
如果一个整数既不是 a 的整数倍也不是 b 的整数倍还不是 c 的整数倍,则这个数称为反倍数。
请问在 1 至 n 中有多少个反倍数。
输入格式
输入的第一行包含一个整数 n。
第二行包含三个整数 a, b, c,相邻两个数之间用一个空格分隔。
输出格式
输出一行包含一个整数,表示答案。
样例输入
30
2 3 6
样例输出
10
样例说明
以下这些数满足要求:1, 5, 7, 11, 13, 17, 19, 23, 25, 29。
评测用例规模与约定
对于 40% 的评测用例,1 <= n <= 10000。
对于 80% 的评测用例,1 <= n <= 100000。
对于所有评测用例,1 <= n <= 1000000,1 <= a <= n,1 <= b <= n,1 <= c <= n。
#include
int main(){
int n,a,b,c,i,k=0;
scanf("%d",&n);
scanf("%d%d%d",&a,&b,&c);
for(i=1;i<=n;i++){
if((i%a!=0)&&(i%b!=0)&&(i%c!=0))
k++;
}
printf("%d",k);
return 0;
}
问题描述
给定一个单词,请使用凯撒密码将这个单词加密。
凯撒密码是一种替换加密的技术,
单词中的所有字母都在字母表上向后偏移3位后被替换成密文。
即a变为d,b变为e,…,w变为z,x变为a,y变为b,z变为c。
例如,lanqiao会变成odqtldr。
输入格式
输入一行,包含一个单词,单词中只包含小写英文字母。
输出格式
输出一行,表示加密后的密文。
样例输入
lanqiao
样例输出
odqtldr
评测用例规模与约定
对于所有评测用例,单词中的字母个数不超过100。
代码块
#include
#include
int main(){
int i,n;
char a[100],b[100];
scanf("%s",a);
n=strlen(a);
for(i=0;i<n;i++){
if(a[i]<'x')
b[i]=a[i]+3;
else if(a[i]=='x')
b[i]='a';
else if(a[i]=='y')
b[i]='b';
else if(a[i]=='z')
b[i]='c';
}
printf("%s",b);
return 0;
}