首页 > 其他分享 >机试刷题

机试刷题

时间:2024-02-29 11:26:40浏览次数:24  
标签:10 int dayin num printf 机试 include 刷题

机试刷题记录

一、刷题

L1-007 念数字

题目链接:https://pintia.cn/problem-sets/994805046380707840/exam/problems/994805136889593856?type=7&page=0

错误答案:

#include<stdio.h>
#include<math.h>
int x,y;
char str[10][5]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
void dayin(int num)
{
    x=num/10;
    y=num%10;
    dayin(x);
    printf("%s ",str[y]);
}
int main()
{
    int num;
    scanf("%d",&num);
    if(num<0) printf("fu ");
    dayin(num);
    printf("%s ",str[y]);
    return 0;
    
}

正确答案

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

char nums[10][5] = {"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};

void dayin(int num)
{
	int s_num = num%10;
	num = num/10;
	if(num!=0)
	{
		dayin(num);
		printf(" %s",nums[s_num]);	
	}
	else{
		printf("%s",nums[s_num]);	
	} 
	
}

int main()
{
	int num;
	scanf("%d",&num);
	
	if(num < 0) {
		num = -num;
		printf("fu ");
	}	
	
	dayin(num);
	return 0;
}

L1-017 到底有多二

题目链接:https://pintia.cn/problem-sets/994805046380707840/exam/problems/994805121500692480?type=7&page=0

#include<stdio.h>
#include<math.h>
#include<string.h>
char num[55];
int main()
{
	scanf("%s",num);
	int len = strlen(num);
	int is_even = 0, is_negtive = 0, digit_count = len, two_count = 0;
	if(num[0]=='-') is_negtive = 1, digit_count -= 1;
	if((num[len-1]-'0')%2==0) is_even = 1;
	int i;
	for(i=0;i<len;++i)
	{
		if(num[i]=='2') two_count += 1;
	}
	
	double ans = (double)two_count/(double)digit_count;
	
	if(is_negtive) ans *= 1.5;
	if(is_even) ans *= 2;
	
	ans *= 100;
	
	printf("%.2f%%",ans);
	
	return 0;
}

二、知识点

标签:10,int,dayin,num,printf,机试,include,刷题
From: https://www.cnblogs.com/Tiork/p/18043020

相关文章

  • C++ 刷题必备
    目录语言必备语言必备在C++中刷Leetcode时,有一些常用的语言技巧和最佳实践可以帮助你更有效地解决问题。以下是一些建议:熟悉STL(StandardTemplateLibrary):使用vector,list,set,map等容器来存储和操作数据。使用algorithm库中的函数,如sort,binary_search,unique等。......
  • Leetcode刷题第十四天-动态规划
    674:最长连续递增序列链接:674.最长连续递增序列-力扣(LeetCode)1classSolution:2deffindLengthOfLCIS(self,nums:List[int])->int:3n=len(nums)4dp=[1]*n5if(n<1):return06foriinrange(1,n):7if......
  • Leetcode刷题第十三天-动态规划
    198:打家劫舍链接:198.打家劫舍-力扣(LeetCode)线性数组1classSolution:2defrob(self,nums:List[int])->int:3#dp[i]偷房间i能获得的最大价值4#推导公式dp[i]=max(dp[i-2]+nums[i],dp[i-1]):dp[i-1]不偷房间i,dp[i-2]+nums[i]偷房间i5......
  • 【leetcode】数组篇刷题 --滑动窗口
    /**@lcapp=leetcode.cnid=209lang=cpp**[209]长度最小的子数组*找最短的子数组*///@lccode=startclassSolution{public:intminSubArrayLen(inttarget,vector<int>&nums){//滑动窗口,//一个计算总和intsum=0;......
  • 【力扣刷题】合并两个有序链表
    题目描述分析这道题实际的解法是要通过递归来写,由于链表的特性:链表的任何一个子表都是链表。所以很多链表的算法用递归来写会非常简便。这里先尝试着写一下非递归的算法,再写一遍递归的算法。非递归:classSolution{public://voidInsert(ListNode*node1,ListNode*n......
  • 【leetcode】数组篇刷题 --删除元素
    //@before-stub-for-debug-begin#include<vector>#include<string>#include"commoncppproblem27.h"usingnamespacestd;//@before-stub-for-debug-end/**@lcapp=leetcode.cnid=27lang=cpp**[27]移除元素*///@lccode=start......
  • Leetcode刷题第十二天-动态规划
    1049:最后一块石头的重量II链接:1049.最后一块石头的重量II-力扣(LeetCode)1classSolution:2deflastStoneWeightII(self,stones:List[int])->int:3#dp[i]背包为i的最大价值为dp[i]4#推导公式dp[i]=max(dp[i],dp[i-stones[i]]+stones[i]......
  • 刷题记录_2024寒假2/19~2/21
    P4287[SHOI2011]双倍回文考虑马拉车,但是我不会马拉车怎么办,考虑PAM我们在记录一般的fail之外再记录一个trans指针指向小于等于当前节点长度一半的最长回文后缀然后枚举每个节点#include<bits/stdc++.h>usingnamespacestd;chars[2000001];intlen[2000001],trans[2000......
  • Leetcode刷题第十天-动态规划
    ......
  • [刷题笔记] P2881
    例题:P2881注意到\(n\le1000\)。数据较小。且有传递性,即如果\(x,y\)关系确定,\(y,z\)关系确定,那么\(x,z\)关系确定。考虑传递闭包。传递闭包从关系图的角度来说,如果原图上存在一条\(u,v\)路径,那么传递闭包就将\(u,v\)连边。传递闭包可以使用Floyd算法解决。枚举中......