| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
简单模拟题 附代码~~#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int jinwei(char ch1[], int max)
{
int i;
i = max - 1;
while(ch1[i] == (27 - max + 1 + i))
{
ch1[i - 1]++;
i--;
}
return i;
}
void jiayi(char ch1[], int max, int k)
{
while(k < max)
{
ch1[k] = ch1[k - 1] + 1;
k++;
}
return;
}
char ch[105], ch1[105];
int main(int argc, char *argv[])
{
int i, j, k, max, ans, cheng = 26, sum[27] = {0};
memset(ch, 0, sizeof(ch));
memset(ch1, 0, sizeof(ch1));
sum[1] = 0;
sum[2] = 26;
for(i = 3;i <= 26;i++)
{
cheng = 26;
for(j = 1;j < (i - 1);j++)
{
cheng *= (26 - j);
cheng /= j;
}
cheng = cheng / (i - 1);
sum[i] = sum[i - 1] + cheng;
}
while(scanf("%s", ch) != EOF)
{
k = 0;
max = strlen(ch);
ans = sum[max];
for(i = 0;i < max;i++)
{
ch[i] = ch[i] - 'a' + 1;
if(ch[i] <= ch[i - 1]&&i != 0)
{
k = 1;
printf("0\n");
break;
}
}
if(k == 1)
continue;
k = max - 1;
while(k >= 0)
{
ch1[k] = k + 1;
k--;
}
while(memcmp(ch, ch1, max) != 0)
{
ch1[max - 1]++;
ans++;
while(ch1[max - 1] == 27)
{
k = jinwei(ch1, max);
jiayi(ch1, max, k + 1);
}
}
printf("%d\n", ans + 1);
memset(ch, 0, sizeof(ch));
memset(ch1, 0, sizeof(ch1));
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator