hdu 5059 判断数字表示方式以及范围合法(int型之内)

本文深入探讨了在编程过程中遇到复杂代码逻辑时的解决策略及高效调试方法,包括如何利用工具辅助、理解代码结构、优化代码效率等关键步骤。通过实际案例分析,为开发者提供实用的调试技巧,助其在编程旅程中更加游刃有余。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题意:
      给你一个串和两个整数a,b,问你这个串表示的数字是否合法,并且在a,b之间,
和法的要求是无论是正数还是负数都没有前导0,并且注意 -0 是不合法的。


思路:
      写了将近两个小时了,还是wa,就是不停的模拟模拟模拟,最后都感觉自己不知道题意了,-0不合法是最后ac了才测出来的,在网上看到了一个比较好的方法,里面涉及到两个新的函数,之前没用过,先解释下函数及其功能


#include<stdlib.h>
//atoi(str) 把字符串转化成10进制int<字符串里只能有0-9>
//itoa(a ,str ,b)把a转换成b进制存在str中  a b 都是整数

//记得用C++提交


//atoi(str) 把字符串转化成10进制int
//itoa(a ,str ,b)把a转换成b进制存在str中 

#include<stdio.h>
#include<string.h>
#include<stdlib.h>

int main ()
{
   char str1[110] ,str2[110];
   int a ,b;
   while(gets(str1))
   {
      scanf("%d %d" ,&a ,&b);
      getchar();
      int c = atoi(str1);
      itoa(c ,str2 ,10);
      if(strcmp(str1 ,str2) || c < a || c > b)
      printf("NO\n");
      else printf("YES\n");
   }
   return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值