1. 程式人生 > >Kyoya and Photobooks

Kyoya and Photobooks

Description Kyoya Ootori is selling photobooks of the Ouran High School Host Club. He has 26 photos, labeled “a” to “z”, and he has compiled them into a photo booklet with some photos in some order (possibly with some photos being duplicated). A photo booklet can be described as a string of lowercase letters, consisting of the photos in the booklet in order. He now wants to sell some “special edition” photobooks, each with one extra photo inserted anywhere in the book. He wants to make as many distinct photobooks as possible, so he can make more money. He asks Haruhi, how many distinct photobooks can he make by inserting one extra photo into the photobook he already has?

Please help Haruhi solve this problem.

Input The first line of input will be a single string s (1 ≤ |s| ≤ 20). String s consists only of lowercase English letters.

Output Output a single integer equal to the number of distinct photobooks Kyoya Ootori can make.

Examples Input a Output 51 Input hi Output 76 Note In the first case, we can make ‘ab’,‘ac’,…,‘az’,‘ba’,‘ca’,…,‘za’, and ‘aa’, producing a total of 51 distinct photo booklets. 原串長度為L,則共有L + 1個位置可以插入,每個位置可以有26種插法,共26*(L + 1)種。但注意相鄰兩個空位插入同為位於這兩個相鄰空位中間的字母,構造出的新串是一樣的,所以答案要減去L,於是最後答案為25*L + 26

C語言版本一

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
	char s[25];
	scanf("%s",&s);
	printf("%d\n",26*(strlen(s)+1)-strlen(s)) ;
	
	
	return 0;
}

C++版本一

#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <string>
#include <algorithm>
#include <stack>
#include <queue>
#include <vector>
#include <map>
#include <set>
using namespace std;
 
int main()
{
    char s[30];
    while(scanf("%s", s) != EOF)
        printf("%d\n", strlen(s)*25 + 26);
    return 0;
}