【王道训练营】第6题 输入一个整型数,判断是否是对称数,如果是,输出yes,否则输出no

news2024/9/21 4:22:08

在这里插入图片描述

文章目录

    • 我的代码
    • 改正代码
    • 其他代码

我的代码

没有完成

#include<stdio.h>
int main(){
  int a;
  int b;
  int c=0;//位数
  int d=0;//比较几次

 
  scanf("%d",&a);
  
  while(b=!0){
    b=b/10;
    c++;
  }
  
  d=c/2;//比较几次
  
  int f
  for(int i=0 ;i<d;i++){
    int e=c;//位数
    f=a - a / (((e-i-1)*10*C)
    if( a / ((e-i-1)*10) == a % ((i+1)*10) ){
    }
  }
  return 0
}

改正代码

在这里,我将为你提供两种方法来实现这个问题。一个方法是将整数转换为字符串并使用指针或数组索引进行比较,另一个方法是通过反转整数并进行比较。

你的思路是正确的,但是在实现过程中有一些问题。首先,你想要计算输入数字的位数,但是你在循环中没有正确地更新b的值。其次,你没有正确地计算出每一位的数字。我会帮你修改和润色这段代码。

以下是修正后的代码:

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

int main() {
    int num;
    scanf("%d", &num);

    int temp = num;
    int digitCount = 0;

    while (temp != 0) {
        temp /= 10;
        digitCount++;
    }

    int compareCount = digitCount / 2;//比较次数
    int isSymmetric = 1; // 假设是对称数

    for (int i = 0; i < compareCount; i++) {
        int highDigit = (num / (int)pow(10, digitCount - i - 1)) % 10;
        int lowDigit = (num / (int)pow(10, i)) % 10;
        if (highDigit != lowDigit) {
            isSymmetric = 0;
            break;
        }
    }

    if (isSymmetric) {
        printf("yes\n");
    } else {
        printf("no\n");
    }

    return 0;
}

Symmetric 对称的 digital counter数字计数器 Digit数字数位

这段代码首先计算出输入数字的位数,然后比较最高位和最低位的数字,然后比较次高位和次低位的数字,以此类推。如果在任何时候这两个数字不相等,那么这个数字就不是对称数,我们将isSymmetric设置为0并退出循环。

其他代码

方法一:将整数转化为字符串,然后逐个比较字符

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

int main() {
    int num = 12321; // 输入的整数
    char str[20];
    sprintf(str, "%d", num); // 将整数转化为字符串
    int len = strlen(str);
    for(int i = 0; i < len / 2; i++) {
        if(str[i] != str[len - 1 - i]) {
            printf("no\n");
            return 0;
        }
    }
    printf("yes\n");
    return 0;
}

方法二:通过逆序整数和原数比较

#include <stdio.h>

int main() {
    int num = 12321; // 输入的整数
    int reversed = 0;
    int original = num;
    while(num > 0) {
        reversed = reversed * 10 + num % 10;
        num /= 10;
    }
    if(reversed == original)
        printf("yes\n");
    else
        printf("no\n");
    return 0;
}

方法三:将整数转化为字符串,然后用双指针法

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

int main() {
    int num = 12321; // 输入的整数
    char str[20];
    sprintf(str, "%d", num); // 将整数转化为字符串
    int left = 0, right = strlen(str) - 1;
    while(left < right) {
        if(str[left++] != str[right--]) {
            printf("no\n");
            return 0;
        }
    }
    printf("yes\n");
    return 0;
}

方法四:将整数转化为字符串,然后使用库函数

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

int main() {
    int num = 12321; // 输入的整数
    char str[20], rev[20];
    sprintf(str, "%d", num); // 将整数转化为字符串
    strcpy(rev, str);
    strrev(rev);
    if(strcmp(str, rev) == 0)
        printf("yes\n");
    else
        printf("no\n");
    return 0;
}

方法五:使用递归

#include <stdio.h>

int reverseNum(int num, int rev) {
    if(num == 0)
        return rev;
    return reverseNum(num / 10, rev * 10 + num % 10);
}

int main() {
    int num = 12321; // 输入的整数
    if(num == reverseNum(num, 0))
        printf("yes\n");
    else
        printf("no\n");
    return 0;
}

这些方法都有各自的优缺点,你可以根据具体的需求和限制来选择最适合的方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1546346.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2024年软件测试,“我“从初级到高级进阶,不再走弯路...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 现在2024年&#…

Python算法100例-4.2 列出真分数序列

完整源代码项目地址&#xff0c;关注博主私信源代码后可获取 1.问题描述2.问题分析3.算法设计4.确定程序框架5.完整的程序6.拓展训练 1&#xff0e;问题描述 按递增顺序依次列出所有分母为40、分子小于40的最简分数。 2&#xff0e;问题分析 分子和分母只有公因数1的分数&…

Maven发布开源框架到远程仓库

1.背景 当你写了一个自我感觉良好的开源工具希望给他人分享&#xff0c;如果只是在github等网站进行公布之外&#xff0c;用户使用起来还不是很方便&#xff0c;特别是当你提供是特定领域的基础工具。你还可以把它部署到中央仓库&#xff0c;这样别人使用就会方便很多。接下来…

android_uiautomator元素定位

通过UIAUTOMATOR的text属性定位到元素&#xff0c;并打印文本from appium import webdriver from appium.webdriver.common.appiumby import AppiumBy import time # For W3C actions from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriv…

Kafka总结问题

Kafka Kafka Kafka Kafka的核心概念/ 结构 topoic Topic 被称为主题&#xff0c;在 kafka 中&#xff0c;使用一个类别属性来划分消息的所属类&#xff0c;划分消息的这个类称为 topic。topic 相当于消息的分配标签&#xff0c;是一个逻辑概念。主题好比是数据库的表&#xff0…

AI视频激光综合驱鸟装置:全自动、大范围驱鸟 | 真驱鸟科技

在电力系统中&#xff0c;鸟害事故已成为一个不容忽视的问题&#xff0c;直接威胁到电网的正常运行。但鸟类拥有极强的环境适应能力&#xff0c;它们能够在各种环境中生存和繁衍。这种强大的适应性使得传统的单一功能驱鸟器&#xff0c;在面对鸟类时显得力不从心&#xff0c;无…

Github简单入门教程

文章目录 使用前提查看项目内容查看项目介绍打包下载项目查看项目作者项目搜索复制项目分支项目创建向项目中添加文件对项目进行评论 使用前提 想要使用Github&#xff0c;首先需要学会科学上网&#xff0c;不然用国内的网在正规情况下是无法访问Github滴~ 查看项目内容 打开…

【Pt】马灯贴图绘制过程 01-制作基础色

目录 一、导入模型并烘焙 二、制作基础底漆 &#xff08;1&#xff09;底漆层 &#xff08;2&#xff09;水痕层 &#xff08;3&#xff09;指纹层 一、导入模型并烘焙 1. 导入模型&#xff0c;马灯模型如下所示 2. 在纹理集设置中点击“烘焙模型贴图” 设置输出大小为…

使用 Amazon Bedrock + Claude 3 打造个性化智能编程助手

最近&#xff0c;随着人工智能技术的迅速发展&#xff0c;代码助手已经成为软件开发领域备受关注的工具。像 Amazon CodeWhisperer 和 Github Copilot 这样的工具可以在集成开发环境中帮助用户自动生成代码&#xff0c;极大地提高了开发效率。然而&#xff0c;这些助手通常缺乏…

HarmonyOS 健康系统联系案例 创建项目

上文 HarmonyOS 健康系统联系案例 整体原型图介绍 我们 介绍了健康系统的整体 UI 然后 我们一点一点来 今天先搭个环境 首先 我们打开开发工具首页 创建项目 一个非常令人怀念的步骤啊 我们点击 Create Project 创建一个新的工程 模板 还是选最基础的 Empty Ability 然后 …

【鸿蒙HarmonyOS开发笔记】使用@Preview装饰器预览组件

概述 ArkTS应用/服务支持组件预览&#xff0c;要求compileSdkVersion为8或以上。组件预览支持实时预览&#xff0c;不支持动态图和动态预览。组件预览通过在组件前添加注解Preview实现&#xff0c;在单个源文件中&#xff0c;最多可以使用10个Preview装饰自定义组件。 Preview…

[C++]函数重载(什么是函数重载,函数重载的原理(底层怎么实现))

一、什么是函数重载 函数重载是指在同一作用域内&#xff0c;可以有多个功能类似具有相同函数名&#xff0c;不同参数列表&#xff08;包括参数类型、参数个数、参数顺序&#xff09;的函数。编译器会根据函数调用时提供的参数来决定调用哪一个具体的函数。 注意&#xff1a;只…

洛谷_P1102 A-B 数对_python写法

P1102 A-B 数对 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 解法一&#xff1a; n, c map(int,input().split())data list(map(int,input().split())) data.sort() maxx max(data)sum 0 l [0 for _ in range(maxx1)] for i in data:l[i] 1 for b in range(1, maxx1)…

漏洞扫描-让安全弱点无所遁形

随着信息技术的迅猛发展和互联网的广泛普及&#xff0c;网络安全问题日益凸显。在这个数字化的世界里&#xff0c;无论是企业还是个人&#xff0c;都面临着前所未有的安全威胁。安全漏洞&#xff0c;作为这些威胁的源头&#xff0c;常常被忽视或无法及时发现。 而漏洞扫描&…

VBA技术资料MF133:隐藏编辑栏及计算字符串

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套&#xff0c;分为初级、中级、高级三大部分&#xff0c;教程是对VBA的系统讲解&#…

20240319-1-过拟合与欠拟合

过拟合欠拟合面试题 1. 如何理解高方差与低偏差? 模型的预测误差可以分解为三个部分: 偏差(bias)&#xff0c; 方差(variance) 和噪声(noise). 偏差 偏差度量了模型的期望预测与真实结果的偏离程度&#xff0c; 即刻画了学习算法本身的拟合能力。偏差则表现为在特定分布上…

二叉树|236.二叉树的最近公共祖先

力扣题目链接 class Solution { public:TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {if (root q || root p || root NULL) return root;TreeNode* left lowestCommonAncestor(root->left, p, q);TreeNode* right lowestCommonAncesto…

智慧工地源码 数字孪生可视化大屏 工地管理平台系统源码 多端展示(PC端、手机端、平板端)

智慧工地源码 数字孪生可视化大屏 工地管理平台系统源码 多端展示&#xff08;PC端、手机端、平板端&#xff09; 智慧工地系统多端展示&#xff08;PC端、手机端、平板端&#xff09;;数字孪生可视化大屏&#xff0c;一张图掌握项目整体情况;使用轻量化模型&#xff0c;部署三…

IPhone让用户升级?网友你咋不降点!

最近一个热搜刷屏了我的朋友圈&#xff0c;我点开一看是苹果上架了全新“换代有来”页面&#xff0c;其主要表达了苹果用户可以将旧的iphone升级到全新的iphoe15上。并告诉贴心的给网友对比了一下换代的好处。 并且还详细了说了一些iPhone 11、11 Pro、11 Pro Max、12、12 mini…

flutter使用Command库调用cmd命令或者shell命令,并支持多个参数和指定文件夹目录

想要在不同的平台上运行flutter doctor命令&#xff0c;就需要知道对应的平台是windows还是linux&#xff0c;如果是windows就需要调用cmd命令&#xff0c;如果是linux平台&#xff0c;就需要调用sh命令&#xff0c;所以可以通过cfg!实现不同平台的判断&#xff0c;然后调用不同…