c入门数的编程 拆数,构造数,c语言字符找出数字拼接,水仙花数 将一个多位数各位拆分

学会构造数和拆分数

目录

学会构造数和拆分数

1:一个三位数,求其各位数字之和

补充:将一个多位数各位拆分求和,(不知道位数怎么求)

2:串中取数(字符转数字)

3:水仙花数(玫瑰花数,五角星数都是一个原理)

4:3+33+33+3333+...,各位数字(a)以及位数(n)通过键盘输入

5:  1+12+123+1234+...1234xxxn ,n通过键盘输入


1:一个三位数,求其各位数字之和

#include<stdio.h>
void main()
{
	int n,ge,shi,bai,s;
	scanf("%d", &n);
	ge = n % 10;
	shi = n / 10 % 10;
	bai = n / 100;
	s = ge + shi + bai;
	printf("%d", s);
}

补充:将一个多位数各位拆分求和,(不知道位数怎么求)

#include<stdio.h>
void main()
{
	int n,s=0,t=0;
	scanf("%d", &n);
	do {
		t = n % 10; //取个位
		s = s + t;//累和
		n = n / 10;//删个位
	} while (n != 0);
	printf("%d", s);
}

2:串中取数(字符转数字)

#include<stdio.h>
void main()
{
	char s[20];
	int n, i=0,t=0;
	gets(s);
	while (s[i] != '\0') {
		if (s[i] >= '0' && s[i] <= '9') {
			n = s[i] - '0'; //转为为数值型
			t = t * 10 + n;//拼接
		}
		i++;		
	}
	printf("%d", t);
}

3:水仙花数(玫瑰花数,五角星数都是一个原理)

#include<stdio.h>
void main()
{
    int n,ge,shi,bai,s;
    scanf("%d", &n);
    ge = n % 10;
    shi = n / 10 % 10;
    bai = n / 100;
    s = ge * ge * ge + shi * shi * shi + bai * bai * bai;
    //别写成  ge^3 了注意 这玩意是异或运算
    if (s == n) printf("%d是水仙花数", n);
    else printf("%d不是水仙花数", n);
}

4:3+33+33+3333+...,各位数字(a)以及位数(n)通过键盘输入

#include<stdio.h>
void main()
{
	int a, n,i,s=0,t=0;
	scanf("%d %d", &a, &n);
	for (i = 0; i < n; i++)
	{
		t = t * 10 + a;//构造数
		s = s + t;
	}
	printf("%d", s);
}

5:  1+12+123+1234+...1234xxxn ,n通过键盘输入

#include<stdio.h>
void main()
{
	int i, n, t = 0, s = 0;
	scanf("%d", &n);
	for (i = 1; i <= n; i++)
	{
		t = t * 10 + i;
		s = s + t;
	}
	printf("%d", s);
}

猜你喜欢

转载自blog.csdn.net/m0_64365315/article/details/129036706