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

在这里插入图片描述

文章目录

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

我的代码

没有完成

#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;
}

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Docker】Docker安全与最佳实践:保护你的容器化应用程序

欢迎来到英杰社区&#xff1a; https://bbs.csdn.net/topics/617804998 欢迎来到阿Q社区&#xff1a; https://bbs.csdn.net/topics/617897397 &#x1f4d5;作者简介&#xff1a;热爱跑步的恒川&#xff0c;致力于C/C、Java、Python等多编程语言&#xff0c;热爱跑步&#xff…

力扣_206_反转链表(c语言)

struct ListNode* reverseList(struct ListNode* head) {if(headNULL)return head;struct ListNode*n1NULL,*n2head,*n3head->next;while(n2){n2->nextn1;n1n2;n2n3;if(n3) n3n3->next;}return n1; }

Linux 理解文件系统、磁盘结构、软硬链接

目录 一、理解磁盘结构 1、磁盘的物理结构 2、硬件层面理解 3、磁盘的具体物理存储结构 4、进行逻辑抽象 5、磁盘文件的管理 6、创建新文件的过程 二、理解文件系统 1、文件的构成 2、为何选择4KB而非512字节作为基本单位? 3、文件系统的组成 数据块&#xff08;Data Blocks&a…

elasticsearch+kibana安装部分问题:

1.elasticsearch启动问题&#xff1a; 如果elasticsearch开启https登录则第一次启动的时候需要前台启动&#xff0c;前台启动的时候会自己创建相应的token等登录信息,如果是后台启动则没有这些登录信息&#xff1a; ./elasticsearch ━━━━━━━━━━━━━━━━━━━…

基于java+springboot+vue实现的大学生二手物品交易商城(文末源码+Lw+ppt)23-329

摘 要 二十一世纪我们的社会进入了信息时代&#xff0c;信息管理系统的建立&#xff0c;大大提高了人们信息化水平。传统的管理方式对时间、地点的限制太多&#xff0c;而在线管理系统刚好能满足这些需求&#xff0c;在线管理系统突破了传统管理方式的局限性。于是本文针对这…

数据湖与湖仓一体是如何演变而来的?详谈大数据存储架构的变迁

在大数据存储架构的发展历程中&#xff0c;可以划分为三个显著的演进阶段。首先&#xff0c;随着Hadoop和Hive等初期项目的出现&#xff0c;数据仓库&#xff08;Data Warehouse&#xff09;的概念得以确立&#xff1b;随着数据仓库的不断演化&#xff0c;同时有了云与对象存储…

解決flask-restful提示Did not attempt to load JSON data 问题

在使用flask-restfull进行API开发的时候。一旦我使用类似下面的代码从url或者form中获得参数就会出现报错&#xff1a;Did not attempt to load JSON data because the request Content-Type was not ‘application/json’。 代码如下&#xff1a; # Flask_RESTFUl数据解析 f…

Python之Scrapy爬虫框架安装及使用详解

声明 文章所涉及的内容仅为学习交流所用。 前言&#xff1a; Scrapy 是用 Python 实现的一个为了采集网站数据、提取结构性数据而编写的应用框架。常应用在包括数据挖掘&#xff0c;信息处理或存储历史数据等一系列的程序中。通常我们可以很简单的通过 Scrapy 框架实现一个爬…

风丘EV能量流测试解决方案 提高电动汽车续航能力

电动汽车&#xff08;EV&#xff09;近些年发展迅猛&#xff0c;已被汽车业内普遍认为是未来汽车发展的新方向&#xff0c;但现如今电动汽车仍然存在一些短板&#xff0c;导致其还无法替代传统燃油车。对此&#xff0c;首先想到的肯定就是电动车的续航问题。其实解决电动车续航…

算法沉淀 —— 动态规划篇(路径问题)

算法沉淀 —— 动态规划篇&#xff08;路径问题&#xff09; 前言一、不同路径1二、珠宝的最高价值三、下降路径最小和四、地下城游戏 前言 几乎所有的动态规划问题大致可分为以下5个步骤&#xff0c;后续所有问题分析都将基于此 1.、状态表示&#xff1a;通常状态表示分为以下…

心法利器[110] | 知识文档处理和使用流程

心法利器 本栏目主要和大家一起讨论近期自己学习的心得和体会。具体介绍&#xff1a;仓颉专项&#xff1a;飞机大炮我都会&#xff0c;利器心法我还有。 2023年新的文章合集已经发布&#xff0c;获取方式看这里&#xff1a;又添十万字-CS的陋室2023年文章合集来袭&#xff0c;更…

C++的缺省参数,函数重载,引用

目录 1、缺省参数&#xff08;不能在函数声明和定义中同时出现&#xff0c;若声明和定义是分开的&#xff0c;则缺省参数放在声明里面&#xff09; 1.1、缺省参数的概念 1.2、全缺省 1.3、半缺省 2、函数重载 2.1、特殊情况 2.2、特殊情况 2.3、为什么C支持函数重载而C语…

四、C语言中的数组:二维数组

四、C语言中的数组&#xff1a;二维数组 本章的学习内容如下&#xff1a; 四、C语言中的数组&#xff1a;数组的创建与初始化 四、C语言中的数组&#xff1a;数组的输入与元素个数 C语言—第6次作业—十道代码题掌握一维数组 四、C语言中的数组&#xff1a;二维数组 我们可以…

学习SpringBoot笔记--知识点(2)

目录 数据访问 基础特性 自定义banner Profiles Profiles组件 Profiles配置文件 外部化配置 单元测试 数据访问 整合SSM场景 SpringBoot 整合 Spring&#xff0c;SpringMVC&#xff0c;MyBatis 进行数据访问场景开发 需要的依赖&#xff1a; <!-- web启动…

遇到了问题,Firepower 2140配置带外IP时报错 commit-buffer failed

onsite we have a cisco firepower 2140 device which run ASA as we try to modify the 2140 OOB mgmt ip by CLI, we got an error why ? 经过查询发现&#xff0c;需要进入ASA里面打上以下这条命令&#xff0c;并重启ASA 1 修改模式并重启 ciscoasa# configure termina…

注册、配置中心-微服务小白入门(2)

Nacos 已经下载安装并且使用了&#xff0c;那么看如何使用&#xff1a; Nacos 注册及配置&#xff0c;以下是一个服务启动后注册到nacos&#xff0c;同时&#xff0c;把该服务的相关配置&#xff0c;写到nacos之中 1、nacos设置 命名空间中&#xff0c;添加对应的服务命名空间…

agent利用知识来做规划:《KnowAgent: Knowledge-Augmented Planning for LLM-Based Agents》笔记

文章目录 简介KnowAgent思路准备知识Action Knowledge的定义Planning Path Generation with Action KnowledgePlanning Path Refinement via Knowledgeable Self-LearningKnowAgent的实验结果 总结参考资料 简介 《KnowAgent: Knowledge-Augmented Planning for LLM-Based Age…

CharacterController.Move called on inactive controller

【问题背景】 Unity3D中开发物体的移动&#xff0c;实现代码如下&#xff1a; public class TargetController : MonoBehaviour {private CharacterController character;private float speedRate 4f;private void Start(){character GetComponent<CharacterController&…

第十二届蓝桥杯JavaB组省赛真题 - 时间显示

解题思路&#xff1a; 数量级较大&#xff0c;需要使用long类型 import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scan new Scanner(System.in);long num scan.nextLong();long allseconds num / 1000;long seconds allse…

ROS机器人入门第四课:话题通信

文章目录 ROS机器人入门第四课&#xff1a;话题通信一、话题通信概述&#xff08;一&#xff09;概念&#xff08;二&#xff09;作用 二、话题通信基本操作需求:分析:流程:&#xff08;一&#xff09;发布方解释一些关键的ROS函数和概念&#xff1a; &#xff08;二&#xff0…