c++入门基础 数字拆分

拆数—过河拆桥式玩法

1、拆数的精髓是将一个整数拆成每一位上的数独立存在。

2、拆数的工具 % 和 /。

3、拆数的必备条件是 拆不完不让走!

4、拆数的注意事项:如果在循环内,记得找个替身。

5、拆数的意义:无意义!拆数可以用于做回文数,做数字中的关键字统计或查看。

6、拆数的详细过程如下图。

c++入门基础 数字拆分_第1张图片

举例说明:

1、输入一个数,将该数上各个位上的数相加。

输入样例:123

输出样例:6

#include
using namespace std;
int main(){

	int n,sum=0;//记得初始化sum 
	cin>>n;
	while(n!=0){//没被拆完不让走 
		sum+=n%10;
		n/=10; 
	}
	cout<

2、输入一个数n,输出n中有多少个x(0<=x<=9)。

输入样例:11 1

输出样例:2

#include
using namespace std;
int main(){

	int n,x,cnt=0;//记得初始化cnt 
	cin>>n>>x;
	while(n!=0){//没被拆完不让走 
		if(n%10==x) {//判定拆出的数 是否是x 
			cnt++;
		} 
		n/=10; //刽子手从来都不缺席 
	}
	cout<

3、输入一个数n,输出1到n之间有多少个x(0<=x<=9)。

输入样例:11 1

输出样例:4

#include
using namespace std;
int main() {

	int n,x,t,cnt=0;//记得初始化cnt
	cin>>n>>x;
	for(int i=1; i<=n; i++) {
		t=i;//找替身,否则进入while循环 i出来永远是0,则for循环就成了死循环了 
		while(t!=0) { //没被拆完不让走
			if(t%10==x) {//判定拆出的数 是否是x
				cnt++;
			}
			t/=10; //刽子手从来都不缺席
		}
	}
	cout<

4、输入两个数l、r,求从l到r之间有多少个x(0<=x<=9)。

输入样例:2 22 2

输出样例:6

#include
using namespace std;
int main() {

	int a,b,x,t,cnt=0;//记得初始化cnt
	cin>>a>>b>>x;
	for(int i=a; i<=b; i++) {
		t=i;//找替身,否则进入while循环 i出来永远是0,则for循环就成了死循环了 
		while(t!=0) { //没被拆完不让走
			if(t%10==x) {//判定拆出的数 是否是x
				cnt++;
			}
			t/=10; //刽子手从来都不缺席
		}
	}
	cout<

5、输入两个数l、r,求从l到r之间,0 至9共出现了多少次。

输入样例:1 11

输出样例:1 4 1 1 1 1 1 1 1 1

#include
using namespace std;
int main() {

	int a,b,x,t,cnt=0;//记得初始化cnt
	int arr[11]={0};//初始化数组 
	cin>>a>>b;
	for(int i=a; i<=b; i++) {
		t=i;//找替身,否则进入while循环 i出来永远是0,则for循环就成了死循环了 
		while(t!=0) { //没被拆完不让走
			arr[t%10]++;//类属于捅排的玩法 
			t/=10; //刽子手从来都不缺席
		}
	}
	for(int i=0;i<10;i++){
		cout<

拆数模块到这就差不多结束了,若关于本节中的取余,循环等知识点不懂,我稍后会补充扩展知识,然后放上链接。

谢谢大家,若有不足,欢迎批评指正,若需要补充,可私信我,谢谢!

你可能感兴趣的:(基础知识,c++,c语言)