学会构造数和拆分数
目录
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); }