C:如何分解整数(从末位往前取以及从首位往后取)
主要都是通过整除与取余来处理
1.从末位往前取
#include<stdio.h>
int main()
{
int num;
int num_1,num_2,num_3;
scanf("%d",&num);
num_1 = (num/1) % 10;
num_2 = (num/10) % 10;
num_3 = (num/100) % 10;
printf("%d",num_1 * 100 + num_2 * 10 + num_3 * 1);
}
在上述代码中,num_1表示个位,num_2表示十位,num_3表示百位,分别通过(num/1) % 10,(num/10) % 10以及(num/100) % 10来获得。
#include <math.h>
int main()
{
int sum = 0;
int number,last,cout = 1;
scanf("%d",&number);
while(number > 0)
{
last = number % 10;
if (last % 2 == (cout % 2))
{
sum += pow(2,cout-1);
cout ++;
}
else
{
sum += 0;
cout ++;
}
number = number / 10;
}
printf("%d",sum);
}
在上述的代码中,主要通过while(number > 0)以及number % 10和number/10来完成循环取值的运算
2.从首位往后取。这里用的是念数字的例子
int main()
{
int abs_num,num;
int digit = 0;
int deal_num;
int number;
scanf("%d",&num);
abs_num = abs(num);
deal_num = abs_num;
// 记住考虑零的情况
if (num == 0)
{
printf("ling");
}
while(deal_num > 0)
{
deal_num = deal_num / 10;
digit += 1;
}
for (digit; digit>0; digit--)
{
int num_10 = 1;
int digit_1 = 0; // digit_1用于内层循环
digit_1 = digit;
while(digit_1-1 > 0)
{
num_10 *= 10;
digit_1 = digit_1 - 1;
}
number = abs_num / num_10;
abs_num = abs_num - num_10 * number;
//digit表示位数
/*此时要解决的问题
1.得到首个数字 number
2.将首数字删去,得到后面的值
目前有num和digit 数字和位数,如何处理?
1.得到首数字:number = num / (10 * 10)
2.去掉首数字: num = 439 digit = 3,得到num = num - 10 * 10 * number 得到num = 39(3-1个digit)
所以得到 10*10最为重要
*/
//现在可以得到4 3 9,最后要解决的是最后一位没有空格的输出问题
if (num < 0)
printf("fu ");
num = abs(num); //只希望触发一次,触发后,直接将num变为绝对值,此时>0
if (digit > 1)
{
switch(number)
{
case(0):
printf("ling ");
break;
case(1):
printf("yi ");
break;
case(2):
printf("er ");
break;
case(3):
printf("san ");
break;
case(4):
printf("si ");
break;
case(5):
printf("wu ");
break;
case(6):
printf("liu ");
break;
case(7):
printf("qi ");
break;
case(8):
printf("ba ");
break;
case(9):
printf("jiu ");
break;
}
}
else
{
switch(number)
{
case(0):
printf("ling");
break;
case(1):
printf("yi");
break;
case(2):
printf("er");
break;
case(3):
printf("san");
break;
case(4):
printf("si");
break;
case(5):
printf("wu");
break;
case(6):
printf("liu");
break;
case(7):
printf("qi");
break;
case(8):
printf("ba");
break;
case(9):
printf("jiu");
break;
}
}
}
}
这里的核心思路
假设num为439
1.得到首数字:number = num / (10 * 10)
2.去掉首数字: num = 439 digit = 3,得到num = num - 10 * 10 * number 得到num = 39(3-1个digit)
那么就引出如何得到digit,这里的方法是每次num/10,digit++,一直循环至num == 0
转载于:https://www.cnblogs.com/zhaoy-shine/p/10819297.html
C:如何分解整数(从末位往前取以及从首位往后取)相关推荐
- OC--有这么一个 整数 123456789,如何将这个整数的每一位数,从末位开始依次放入数组中,并遍历 倒序输出字符串...
有这么一个 整数 123456789,如何将这个整数的每一位数,从末位开始依次放入数组中,并遍历 1 NSInteger num=123456789; 2 NSString *str=[[NSStri ...
- n^n的末位数字(快速幂)
给出一个整数N,输出N^N(N的N次方)的十进制表示的末位数字. Input 一个数N(1 <= N <= 10^9) Output 输出N^N的末位数字 Input示例 13 Outpu ...
- 51Nod——1004 n^n的末位数字
基准时间限制:1 秒 空间限制:131072 KB 给出一个整数N,输出N^N(N的N次方)的十进制表示的末位数字. Input 一个数N(1 <= N <= 10^9) Output 输 ...
- 51Nod-1004 n^n的末位数字【快速模幂】
1004 n^n的末位数字 题目来源:Author Ignatius.L (Hdu 1061) 基准时间限制:1秒 空间限制:131072KB 分值:5难度:1级算法题 给出一个整数N,输出N^N(N ...
- C语言 正序分解整数
C语言 正序分解整数 输入一个非负整数 , 正序输出它的每一位数字 输入 13526 输出 1 3 5 2 6 分析思路: 需要正序输出每一位数字 ,我们可以先把数逆序一遍,再逆序输出每一位数字. 这 ...
- 正序分解整数C语言实现
我们都知道,逆序分解一个整数相当简单 #include<stdio.h> int main() {//逆序分解整数 并输出 int n=0;printf("请输入您要分解的整数: ...
- 陈春花:一定要让顶上的人有末位淘汰,让基层活不好是错的
转载于 : https://t.qianzhan.com/daka/detail/171211-a67b0627.html 本文转载自微信公众号:中国企业家杂志(ID: iceo-com-cn),记者 ...
- C语言有符号整数最小值,16位带符号整数为什么是
公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:16位带符号整数为什么是回答:剩下15位二进制数的最大值是每一位数都是1的情况,即2^15-1=326.326化成二进制为1000 ...
- 非整数倍数数据位宽转换8to12
非整数倍数数据位宽转换8to12 题目描述 实现数据位宽转换电路,实现8bit数据输入转换为12bit数据输出.其中,先到的数据应置于输出的高bit位. 电路的接口如下图所示.valid_in用来指示 ...
最新文章
- 【安装】Mysql在Linux上安装
- JavaScript 高级技巧
- 纯c语言贪吃蛇,纯C语言贪吃蛇 求助
- 中国杀菌剂行业需求趋势与投资战略规划研究报告2021-2027年版
- 1.2.3 TCP/PI参考模型(应用层、传输层、网际层、网络接口层)、五层参考模型(应用层、传输层、网络层、数据链路层、物理层)、OSI与TCP/IP参考模型比较
- POJ - 1655 Balancing Act(树的重心)
- Linux:查看内存和CPU信息
- java long的包,long longValue()
- hash函数MurmurHash
- jquery扩展提示框
- 追求--MarsCoara
- Python练手项目之微信机器人、恢复被撤回的微信消息
- BDTC 2016 出品人阵容曝光!附首批邀请嘉宾名单
- Mac连局域网打印机
- LaTeX 多图 排列
- kon-boot启动盘测试
- 2021爱分析·云计算趋势报告——支撑数字化转型,企业云平台建设进入新阶段
- linux下github上传文件,linux下将本地文件上传到github中?
- 西游记中神兽谛听的能力 这款小程序也有
- ARC101E Ribbons on Tree 容斥原理+dp
热门文章
- HTML——meta
- 解决mysql报错Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock
- [设计模式][c++]状态切换模式
- CocoaPods的使用
- 问题与解答 [Questions Answers]
- [IE编程相关]之一:客户端键盘响应事件分析
- autossh配置socks代理
- u-boot.lds文件详解
- 3 当某个应用的CPU使用达到100%,该怎么办?
- Tomcat多实例和负载均衡