第二期白银组第七题

统计每个元音字母在字符串中出现的次数。
Input
输入数据首先包括一个整数n,表示测试实例的个数,然后是n行长度不超过100的字符串。
Output
对于每个测试实例输出5行,格式如下:
a:num1
e:num2
i:num3
o:num4
u:num5
多个测试实例之间由一个空行隔开。

请特别注意:最后一块输出后面没有空行:)
Sample Input
2
aeiou
my name is ignatius
Sample Output
a:1
e:1
i:1
o:1
u:1

a:2
e:1
i:3
o:0
u:1

下面是AC代码:

#include<iostream>
using namespace std;
int main()
{
	int a;
	while (cin >> a)
	{
		long long*p = new long long[a];     //得出a个结果.
		int j;
		for (j = 0; j < a; j++)//分别计算a次
		{
			long long d = 1;    //这是结果
			int b, c;
			cin >> b >> c;          //共b个,计算第c个
			int k;
			for (k = 0; k < (b-c); k++)
			{
				d = d * 2;
			}
			p[j] = d;
		}
		int q;
		for (q = 0; q < a; q++)
		{
			cout << p[q] << endl;
		}
	}
}

三个柱子不难发现最上面的盘子逢2进1
第二个盘子每动一次,第一个都要动两次,所以每个盘子动的次数为上一个的2分1次
n个一共n-1次,加上上面的规律,明显就是:
n个盘,第a个
2的(n-a)次方
然后解得答案。

猜你喜欢

转载自blog.csdn.net/weixin_44003016/article/details/85009346