当前位置:网站首页>Summary of Haut OJ 2021 freshman week

Summary of Haut OJ 2021 freshman week

2022-07-05 05:20:00 hunziHang

problem E: Juju Games   ( Pit point : The second line of input string needs to eat the newline character in advance )

Problem description :

Juju wrote a course design whim and made a puzzle ( Simple ) Little games . The middle part of the game is to use the keyboard W、A、S、D( On behalf of 、 Left 、 Next 、 Right ) To control character movement , Now the game character is at the origin , Get together for you n Capital letters ‘W’’A’’S’’D’, If the character goes through this n After operation, it is still at the origin. Please output ”YES”, Otherwise output ”NO”( No quotation marks ).

Input :

first line , A positive integer n, And n<=100

The second line ,n Characters , Each character is a capital letter ‘W’ or ’A’ or ’S’ or ’D’

Output :

a line , If the character is still output at the origin ”YES”( No quotation marks ), Otherwise output ”NO”( No quotation marks )

The sample input :

8
WASDWASD

Sample output :

YES

Cause analysis :

For the first time, I forgot to suck out the line break in advance


Solution :

#include<stdio.h>

int main(){
	int w = 0, a = 0, s = 0, d = 0; //  Statistics WASD Number of occurrences of  
	int n, i;
	char op;
	scanf("%d%*c", &n); //  Use %*c Eat the end of the line     It's fine too  getchar();
	for(i = 1; i <= n; i++){
		scanf("%c", &op);
		
		//  Count the occurrence times of various characters  
		if(op == 'W') w++;
		else if(op == 'A') a++;
		else if(op == 'S') s++;
		else if(op == 'D') d++;
	}
	//  If the up and down times are equal   And   The left and right times are equal , Stop at the origin  
	if(w == s && a == d) printf("YES");
	else printf("NO");
	return 0;
} 


problem F: Lucky numbers of Juju ( Error point : Complicate the problem )

Problem description :

Juju looks AC A lot of questions and high accuracy , But Juju likes to attribute these to “ luck ”. Juju has its own lucky number :5141919. Juan Juan also wants to be lucky, but doesn't want to be like Juju numbers , I want to know about a number x Can you delete any of them from Juju's lucky numbers 1 obtain .

Input :

a line , An integer x( Guarantee x It's not equal to 5141919)

Output :

If possible, output “YES”, Otherwise output “NO”.( No quotation marks )

The sample input :

51499

Sample output :

YES


Cause analysis :

Ideas : Create two arrays , The first array record  5141919 The number of times each number appears , The second array stores the number of occurrences of each number of the input integer , Then compare the two arrays by 1 Whether the number of times each number appears is the same , Then judge the second array 1 It appears less than the first array ;

Simple ideas : Enumerate everything directly


 


Solution :

#include<stdio.h>

int main(){
	int n;
	scanf("%d", &n); 
	if(n == 5499 || n == 51499 || n == 54199 || n == 54919 || n == 514199 || n == 514919 || n == 541919)
		printf("YES");
	else printf("NO");
    return 0;
}

problem H: Aggregated Rating The goal is ( Error point : Code complexity )

Problem description :

Juju is playing a big multiplayer game tonight (?) Write bug game , Juju's evaluation is : Send , Lose big points !( In fact, every time Juju says this, he will get a big score ). Out Rating( fraction ) After the gathering, set a new Rating The goal is . Juju believes that if the non-zero number in each digit of a number does not exceed  1  individual , Then the number can be regarded as a Rating The goal is .

such as ,600,10000,7  It's all reasonable Rating The goal is , and  12,3001,12345  It is not .

Now? , Juju knows her Rating, Write it down as n, Please tell Juju the next Rating How many points is the goal still missing ?

Input :

a line , A positive integer n, And n<=100000

Output :

a line , A positive integer , At present Rating From the next Rating How many points is the goal .

The sample input :

2021

Sample output :

979


Cause analysis :

1. To find the highest digit, I used an array to find ( Simple ideas : Directly find the digits , Input number / 10 Of ( digit -1) Power


Solution :

#include<stdio.h>
#include<math.h>

int main(){
    int rat, r, ans, k, t = 0;
    
    scanf("%d", &rat);
    r = rat;
    
    // Find digit 
    while(rat){ 
        t++;
        rat = rat / 10;
    }
	
	// Find out 10 Of ( length -1) Power  
    k = pow(10, t - 1);

	
	// Find out the result 
	ans = ((r / k) + 1) * k - r; 

    printf("%d", ans);
    
    return 0;
}

summary :

1. Pay more attention to details , We still need to strengthen the training of character types

2. Don't solve problems honestly , Is there any coincidence , Simple way to solve .

原网站

版权声明
本文为[hunziHang]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/02/202202140622508938.html