湘潭大学 湘大 XTU OJ 1055 整数分类 题解(非常详细)

链接

整数分类

题目

|---|---|---|
| ### Description |||
| 按照下面方法对整数x进行分类:如果x是一个个位数,则x属于x类;否则将x的各位上的数码累加,得到一个新的x,依次迭代,可以得到x的所属类。比如说24,2+4=6,则24的类别数是6;39,3+9=12,1+2=3,则39的类别数是3。 ### 输入 每行输入一个非负整数n,n≤10500,n为0时结束。 ### 输出 每行输出对应整数的分类数。 |||
| |||
| ### Sample Input |||
| 24 39 0 |||
| |||
| ### Sample Output |||
| 6 3 |||
| |||
| ### Source |||
| ericxie |||

代码

cpp 复制代码
#include<iostream>

using namespace std;

int main()
{
	char s[510];
	while(~scanf("%s",s))
	{
		if(s[0]=='0'&&s[1]=='\0')	break;
		
		bool flag=false;
		
		if(s[1]=='\0'&&s[0]!='0')	
		{
			flag=true;
			printf("%d\n",s[0]-'0');
		}
		
		int i=0,q=0;
		while(s[i]!='\0')
		{
			q+=(s[i]-'0');
			i++;
		}
		
		int sum=0;
		while(q>0)
		{
			sum+=(q%10);
			q/=10;
			
			while(sum>9&&q==0)
			{
				q=sum;
				sum=0;
			}
		}
		
		if(flag==false)	printf("%d\n",sum);
	}
	
	return 0;
}

总结

1.难点是代码里面有一个迭代,我们处理一次可能无法得到答案,所以我们需要迭代处理

cpp 复制代码
while(q>0)
{
	sum+=(q%10);
	q/=10;
			
	while(sum>9&&q==0)
	{
		q=sum;
		sum=0;
	}
}

q是待处理的数据,sum是我们最后的答案,第二个while改成if可能更好理解,意思是交换两个数据,迭代处理

一个数字,我们要求最后一位数字,取模运算(对10取模),去除最后一位数字,除法运算 (除以10)

2.'\0'和0的意思是一样的,表示数组元素是空,'0',0,'\0',第一个的ASCII码是48,后面两个的ASCII码是0

3.特判

cpp 复制代码
if(s[1]==0&&s[0]!='0')	
{
	flag=true;
	printf("%d\n",s[0]-'0');
}

第二个数组元素是空的,只要第一个数组元素不是'0',就说明输入的数字是个位数,所以可以直接输出答案,注意字符转换成数字需要减去一个48('0')

4.long long:-9223372036854775808~9223372036854775807;(即-2^63~2^63-1) ,19位,简单记为9e18,

int:-2147483648~2147483647;(即-2^31~2^31-1),10位,简单记为2e9

题目要求是500个0,501位,所以我们需要用数组来存储数字,因为超出了我们能存储的数据范围

和高精度加减乘除法类似:高精度加法

5.用一个循环把存在数组里面的元素加起来变成一个整数

cpp 复制代码
int i=0,q=0;
while(s[i]!='\0')
{
	q+=(s[i]-'0');
	i++;
}

6.某一个板块没想清楚,很可能就卡在那里了,所以还是慢慢来,把所有细节想清楚,积累做法

相关推荐
Z1Y492Vn3ZYD9et3B0623 分钟前
李彦宏:今年小龙虾明年可能螃蟹,AI的杀手级产品还没定型
人工智能
啊哈哈121381 小时前
系统设计复盘:为什么 Agent 的 ReAct 循环必须内嵌确定性保护层——以 FitMind 健康助手的路由与步骤控制为例
人工智能·python·react
@蔓蔓喜欢你1 小时前
数据可视化入门:让你的数据说话
人工智能·ai
2401_832298101 小时前
破解智能体幻觉难题,OpenClaw思维链重构,夯实工业级执行可靠性
人工智能
沪漂阿龙1 小时前
面试题详解:检索链路设计全攻略——RAG 检索架构、查询理解、多路召回、混合检索、Rerank、上下文构造与评估闭环
大数据·人工智能·架构
金融小师妹1 小时前
基于AI通胀预期模型与美元流动性监测框架的黄金6周新低行分析:美元五连涨周期下贵金属定价机制重构研究
大数据·人工智能·重构·逻辑回归·线性回归
gaosushexiangji1 小时前
DIC系统推荐:基于千眼狼三维数字图像相关的无人机旋翼疲劳试验全场应变与位移测量
人工智能·算法
智慧医养结合软件开源1 小时前
智慧养老系统医生管理模块:专业赋能,筑牢老人诊疗安全防线
大数据·人工智能·安全·生活
测试修炼手册2 小时前
[自动化测试] Playwright MCP实战:让AI直接操作浏览器做测试
人工智能
Mininglamp_27182 小时前
从单体大模型到Agent网络:当AI互联网取代信息互联网,底层架构需要怎么变?
人工智能·ai·ai agent·moa·分布式ai·多agent协作·scaling out