王道OJ题作业答案-作业7

1、问题描述

Description:输入一个整型数,判断是否是对称数,如果是,输出yes,否则输出no,不用考虑这个整型数过大,int类型存不下,不用考虑负值;

例如 12321是对称数,输出yes,124421是对称数,输出yes,1231不是对称数,输出no

Input:一个整型数       

Output:输出是yes,或者no

Sample Input 1:12321       Sample Output 1:yes

Sample Input 2:1231         Sample Output 2:no

2、思路:所谓对称数,就是逆置这个数后,得到的数和原数相等。

①、可以用循环把每一位取出来,然后进行逆置操作(*10),最后比较两个数是否相等;

②、可以使用循环取出每一位,然后用数组进行比较每一位。

3、代码:

①、while循环实现

复制代码
 1 #include<stdio.h>
 2 int main()
 3 {
 4     int a,b=0,backup;
 5     scanf("%d",&a);
 6     backup=a;
 7     while(a)
 8     {
 9         b=b*10+a%10;
10         a=a/10;
11     }
12     if(b==backup)
13     {
14         printf("yes\n");
15     }
16     else
17     {
18         printf("no\n");
19     }
20     return 0;
21 }
复制代码

②、数组实现

复制代码
 1 #include<stdio.h>
 2 int main()
 3 {
 4     int a,backup,count=0,i=0,j=0;
 5     int comp=0,yes=0;//comp作为临时定义的变量,来比较数组b和c,yes表示匹配成功的次数
 6     scanf("%d",&a);
 7     backup=a;
 8     //算出输入的数有几位,从而进一步定义数组
 9     while(a)
10     {
11         a=a/10;
12         count++;
13     }
14     //因为角标是从0开始,所以j的最大值应该比位数少1
15     j=count-1;
16     //printf("%d",count);
17     int b[count],c[count];
18     while(backup)
19     {
20         b[i]=backup%10;//取出原数的每一位,第一位存在下标为0的位置
21         c[j]=backup%10;//取出原数每一位,最后一位存在下标为0的位置
22         backup=backup/10;
23         //printf("b[%d]=%-3d\n",i,b[i]);
24         i++;
25         //printf("c[%d]=%-3d\n",j,c[j]);
26         j--;    
27     }
28     for(comp=0;comp<count;comp++)
29     {
30         if(b[comp]==c[comp])
31         {
32             yes++;//每一位匹配成功的次数
33         }
34     }
35     if(yes==count)//如果每一位都匹配成功,那么就是对称数
36     {
37         printf("yes");
38     }
39     else
40     {
41         printf("no");
42     }
43 }
复制代码

4、注意:笔者此处的数组表达较为繁琐,应该还有更加简洁的表达,不足请多多包涵。

posted @   Alkaid*  阅读(104)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示