从今天开始,我要每天发一道题解,从Hello world到算法。今天是第10天,离成为算法师还剩3640天!
描述
牛君正在拼写单词,因为粗心大意把英语单词hello
的字母顺序写错了,青牛君拼错单词可能出现的错误共有多少种?
输入描述
无
输出描述
错误种类数
分析:
这道题可以用排列的方法,版式为:A是排列的符号,n1和n2就是要填的信息,从n1个元素中提取n2个元素,比如,
=5(从5里面提取一个数,也就是5)。
=5*4*3*2*1(从5里面提取5个数,也就是5-1)。计算得出
,答案为120。但字母中包含2个l,则要120除以2等于60,共有60种不同的顺序,在这60种结果里有一个是正确的,故可能出现的错误的种数是60-1=59,
方法1:
#include<iostream>
using namespace std;
int main()
{
cout<<59<<endl; 不管三七二十一,先输出!!!!!
return 0;
}
方法2:
#include<iostream>
using namespace std;
int main()
{
cout<<(5*4*3*2*1)/2-1<<endl; //算出方法数,去重,再把正确的减去59。
return 0;
}