社区
C语言
帖子详情
请问个问题用C语言怎样判断一个整数是不是对称数(即:3、1221、55等等)谁能说说解题思路,不要求有程序
tracy19822004
2005-11-07 12:40:51
请问个问题用C语言怎样判断一个整数是不是对称数(即:3、1221、55等等)谁能说说解题思路,不要求有程序
...全文
2200
16
打赏
收藏
请问个问题用C语言怎样判断一个整数是不是对称数(即:3、1221、55等等)谁能说说解题思路,不要求有程序
请问个问题用C语言怎样判断一个整数是不是对称数(即:3、1221、55等等)谁能说说解题思路,不要求有程序
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
K
2005-11-07
打赏
举报
回复
首先确定一下你的判断规则
1是不是对数?奇数长度的字符串算不算对数?
比如12321
判断:
先得到字符串的长度,大于1就除以2,然后用一个循环
bool f=true;
int len=strlen(buf);
先检测规则,奇数长度,偶数长度?
if (len%2==0) 偶数
else 奇数
int half=len/2;
for (int i=0;i<half;i++)
{
if (buf[i]!=buf[len-i-1])
{
f=false;
break;
}
}
cout<<hex<<f<<endl;
return f;
如果这都不算爱
2005-11-07
打赏
举报
回复
判断一个整数是否是对称数
--------------------------------------------------------------------------------
源作者:追风 人气:4299
昨天到一家公司笔试,做了一道判断一个整数是否是对称数的题.要求用Pascal语言,回来后我也用C#来实现.算法如下,期望对初学C#的朋友有点帮助.这里我用了两种算法实现.
算法一,先取首个与末个数字比较,再取第二个与倒数第二个字符比较,以此类推...在每一次比较中若不相等则返回一个为false的bool值,即这个数不是对称数.具体程序如此而已下:
using System;
namespace ConsoleApplication3
{
/// <summary>
/// Summary description for Class1.
/// </summary>
class Class1
{
public static void Main()
{
int a=36455463;
bool flag;
flag=Symmetry(a);
if(flag)
Console.WriteLine(a+"是对称数!");
else
Console.WriteLine(a+"不是对称数!");
}
public static bool Symmetry(int Val)
{
string s;
s=Val.ToString();
char x,y;
bool flag=true; //如果Val是对称数flag为真,否则为假
for(int i=0;i<s.Length/2;i++)
{
x=s[i];
y=s[s.Length-1-i];
if(x!=y)
{
flag=false; //不是对称数
}
}
return flag;
}
}
}
算法二,先定义一个字符串,按倒序的方式读入这个整数依次用连接字符串的文法赋给这个串.最后比较两个字符串是否相等.若不相等则返回一个为false的bool值,即这个数不是对称数.具体程序如此而已下:
using System;
namespace ConsoleApplication3
{
/// <summary>
/// Summary description for Class1.
/// </summary>
class Class1
{
public static void Main()
{
int a=36455463;
bool flag;
flag=Symmetry(a);
if(flag)
Console.WriteLine(a+"是对称数!");
else
Console.WriteLine(a+"不是对称数!");
}
public static bool Symmetry(int Val)
{
string s,x="";
s=Val.ToString();
bool flag=true; //如果Val是对称数flag为真,否则为假
for(int i=s.Length-1;i>=0;i--)
{
x=x+s[i];
}
Console.WriteLine(s+" "+x);
if(s.Trim()!=x.Trim())
{
flag=false; //不是对称数
}
return flag;
}
}
}
tracy19822004
2005-11-07
打赏
举报
回复
是个数值不是字符 也不能转化为字符型
th001
2005-11-07
打赏
举报
回复
up!
快乐鹦鹉
2005-11-07
打赏
举报
回复
这还不好办么。分别定义两个遍历指针,一个从第一个字符开始向后移动,一个从最后一个字符向前移动。每次两个指针都要移动。判断两个指针指向的字符是否相同,相同则继续,不同则不是对称数;如果发现前指针位置>=后指针位置,则遍历结束,该数为对称数。
smltiger
2005-11-07
打赏
举报
回复
先转成字符型,再设let,right两个指针,left从左向右查找,right从右向左查找,当left的值=right的值且left=right时,OK
cdo
2005-11-07
打赏
举报
回复
觉得还是换成字符串的方法最简单
SKYBULE
2005-11-07
打赏
举报
回复
学习中!
gamelearner
2005-11-07
打赏
举报
回复
#include <math.h>
bool IsHuiWen( size_t n )
{
size_t size = 1, nn = n;
while( nn/=10 ) size++;
for( size_t i = 0; i < size/2; i++ )
{
size_t j = (size_t)pow( 10, size-1-2*i );
if( n/j != n%10 )
return false;
n = n%j/10;
}
return true;
}
#include <iostream>
using namespace std;
void main()
{
cout << IsHuiWen( 12221 );
}
csucdl
2005-11-07
打赏
举报
回复
是回文数吧
如果输入的是机器能够表示的整数范围内的话,倒也好办
判断该数和他的反序数相等否
bool IsPal(const int &n)
{
int d = 0;
int i = n;
while(i != 0)
{
d *= 10;
d += i % 10;
i /= 10;
}
return (d == n);
}
chijiao
2005-11-07
打赏
举报
回复
应该很容易看懂的吧:
bool IsDuiCheng(long iIll)
{
// printf("%ld",iIll);
if(iIll < 0)
{
return false;
}
if(iIll <= 9)
{
return true;
}
long iHalf = 0 ;
long iMuShu = 0;
for( ; ; )
{
iMuShu = iIll % 10 ;
iIll = iIll / 10;
if(iHalf > iIll || iIll <= 0)
{
return false;
}
iHalf *= 10;
iHalf += iMuShu;
if(iIll == iHalf)
{
return true;
}
}
return false;
}
ttfy1234
2005-11-07
打赏
举报
回复
楼上的想法不错!
wuwen19
2005-11-07
打赏
举报
回复
要是不想转成串的话,
循环 除10,商除10,余数乘10,
判断结果
int print_num(int num)
{
int over = 0;
int quotient = 0;
quotient = num;
while(1)
{
over = over*10 + quotient%10 ;
quotient=quotient/10;
if ( quotient == 0 )
break;
}
printf("num = <%d>\n",num);
printf("over = <%d>\n",over);
if (num == over )
return 1;
else
return 0;
}
字符串方法一头一尾指针移动判断就可以了。
晨星
2005-11-07
打赏
举报
回复
第一步,把一个整数转化成字符串;
第二步,按照快乐鹦鹉说的做。
优化:遇到负数,直接返回不是。
caigp
2005-11-07
打赏
举报
回复
int i,j=0;
while(i!=0){
j=j*10+i%10;
i=i/10;
}
if(i==j) printf(" hui wen! ");
tracy19822004
2005-11-07
打赏
举报
回复
特别强调不能把它转化为字符型
rpg游戏发展史计算机网络,PC Gamer盘点史上最经典RPG游戏TOP15
RPG角色演类游戏往往能带给玩家史诗般的剧情和难忘的战斗体验,今天外媒PC Gamer盘点了史上最经典RPG游戏TOP15,让我们一起来看看吧!第 2 页 史上最经典15大RPG 26.《质量效应2(Mass Effect 2)》· 发行时间: 2010年· 发行商: BioWare与第一部相比,《质量效应2》进行了一些修改,游戏内容刚好足够让玩家能专注于关键任务。游戏世界更像是科幻版的《十二金刚...
游戏角色动画全流程揭秘:从灵感到手柄
《动画制作全流程揭秘》摘要(150字) 动画是艺术与技术的完美融合,从灵感萌芽到荧幕呈现需经历完整流程:剧本策划构建故事框架,角色与场景设计塑造视觉风格,3D建模搭建
数
字骨骼;动画师通过关键帧或动捕技术赋予角色生命,灯光渲染营造氛围,音效配乐注入灵魂;特效与后期合成完成最终视觉魔法。千人协作的项目管理、日新月异的技术革新,共同推动着动画艺术的边界。每一帧画面都凝结着创作者的心血,让虚拟角色在时光中绽放真实情感。
此生必玩十大游戏榜单
高难度战斗带来极强攻克成就感,职业构筑自由度极高,美术黑暗华丽,DLC内容完善,喜欢挑战、偏爱奇幻黑暗风格的玩家此生不容错过。支线质量碾压多
数
游戏,小人物故事充满人性反思,两大DLC《石之心》《血与酒》水准堪比全新大作。国产3A里程碑,以西游暗黑重构为核心,东方美学拉满。三套棍法搭配七十二变,战斗流畅厚重,碎片化叙事深挖宿命与真假美猴王内核,纯买断无氪金,是国人玩家必须体验的本土顶级动作大作。无冗余填充内容,画风治愈、配乐空灵,斩获三家媒体满分,不分年龄都能沉浸探索,是所有开放世界游戏的标杆之作。
疯狂的VR,热闹的内容,Cocos推动VR内容生态发展
2016年3月17日,第十二届TFC全球移动游戏大会暨智能娱乐展在北京国际会议中心正式开幕。触控科技创始人兼CEO陈昊芝受邀出席大会,在主会场上发表了《Cocos VR: 推动VR内容生态发展》的主题演讲。触控科技创始人兼CEO陈昊芝本次大会上,“TFC全球移动游戏大会暨智能娱乐展”携手“TAC漫游展”重磅来袭,深入影响游戏与智能娱乐业界精英,辐射全国50万二次元人群,打造最强漫游资源矩阵。与此同...
园区如何利用
数
据洞察优化企业服务和管理?.docx
园区如何利用
数
据洞察优化企业服务和管理?
C语言
70,040
社区成员
243,237
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章