uva 445 Marvelous Mazes
按题意模拟就ok了。
代码:
#include<stdio.h>
int main()
{
char c;
int t = 0;
while((c = getchar()) != EOF)
{
if(c >= '0' && c <= '9')
{
t += c -'0';
}
else if(c == '!' || c == '\n')
{
printf("\n");
}
else if(c == 'b')
{
while(t--)
printf(" ");
t = 0;
}
else
{
while(t--)
printf("%c", c);
t = 0;
}
}
return 0;
}
uva 489 Hangman Judge
还是题目难理解,按题意模拟也就ok了。
代码:
#include<stdio.h>
#include<string.h>
const int Maxn = 10000;
char word[Maxn];
char key[Maxn];
bool letter[26];
int main()
{
int round;
bool end;
while(scanf("%d", &round) && round != -1)
{
getchar();
scanf("%s", word);
getchar();
scanf("%s", key);
memset(letter, false, sizeof(letter));
int lenw = strlen(word);
int lenk = strlen(key);
int cnt_word = 0;
for(int i = 0; i < lenw; i++)
{
if(!letter[word[i] - 'a'])
{
cnt_word++;
letter[word[i] - 'a'] = true;
}
}
int cnt_wrong = 0;
end = false;
for(int i = 0; i < lenk; i++)
{
if(letter[key[i] - 'a'])
{
cnt_word--;
letter[key[i] - 'a'] = false;
}
else
{
cnt_wrong++;
}
if(cnt_word == 0)
{
printf("Round %d\nYou win.\n", round);
end = true;
break;
}
if(cnt_wrong >= 7)
{
printf("Round %d\nYou lose.\n", round);
end = true;
break;
}
}
if(!end)
{
printf("Round %d\nYou chickened out.\n",round);
}
}
return 0;
}
uva 490 Rotating Sentences
翻转句子,考察for循环吧。
代码:
#include<iostream>
#include<string>
using namespace std;
int main()
{
string a[101];
int len[101];
int n = 0;
int max = -1;
while(getline(cin ,a[n]))
{
len[n] = a[n].size();
if(max < len[n])
max = len[n];
n++;
}
for(int i = 0; i < max; i++)
{
for(int j = n - 1; j >= 0; j--)
{
if(i < len[j])
cout<<a[j][i];
else
cout<<" ";
}
cout<<endl;
}
return 0;
}
uva 694 The Collatz Sequence
还是很简单的模拟,注意到longlong就行了。
代码:
#include<stdio.h>
int main()
{
int a, l;
int ncase = 1;
while(scanf("%d%d", &a, &l) && (a != -1 || l != -1))
{
long long num = a;
int ans = 1;
while(num != 1)
{
if(num % 2 != 0)
{
num = 3 * num + 1;
}
else
{
num /= 2;
}
if(num > l)
break;
ans++;
}
printf("Case %d: A = %d, limit = %d, number of terms = %d\n", ncase, a, l, ans);
ncase++;
}
return 0;
}