前言
正整数 A 的“DA(为 1 位整数)部分”定义为由 A 中所有 DA 组成的新整数 PA。例如:给定 A=3862767,DA=6,则 A 的“6 部分”PA 是 66,因为 A 中有 2 个 6。
现给定 A、DA、B、DB,请编写程序计算 PA+PB。
输入格式:
输入在一行中依次给出 A、DA、B、DB,中间以空格分隔,其中 0<A,B<109。
输出格式:
在一行中输出 PA+PB 的值。
输入样例 1:
3862767 6 13530293 3
输出样例 1:
399
输入样例 2:
3862767 1 13530293 8
输出样例 2:
0
一、核心思想
- %:取余 vs /: 取整 (无需用数组,直接对数字取余和取整)
二、注意事项
- 注意范围 int :10 VS longlong
三、代码实现
#include<stdio.h> int main(){ int A,DA,B,DB;//这里我没有用longlong但还是通过了 int PA=0,PB=0; scanf("%d%d%d%d",&A,&DA,&B,&DB); while(A){//这里 while 学会用 if(A%10==DA) PA=PA*10+DA; A=A/10; } while(B){ if(B%10==DB) PB=PB*10+DB; B=B/10; } printf("%d",PA+PB); return 0; }
经典代码:
- while(B){
if(B%10==DB) PB=PB*10+DB;//while 和 累加的运用
B=B/10;
}
使用取余与取整计算整数的特定部分之和
该博客介绍了一个程序设计问题,即如何计算两个正整数在给定数字 DA 和 DB 分别出现的部分之和。核心思想是利用取余和取整操作,无需数组辅助,直接对数字进行处理。博主提供了C语言的代码实现,通过不断检查数字的个位数是否等于 DA 或 DB 并累加,最终得到 PA+PB 的结果。博客强调了注意数字范围以及避免溢出的问题。
7943

被折叠的 条评论
为什么被折叠?



