5.20

#include <stdio.h>
#include <math.h>
#include <assert.h>
#include <ctype.h>
void Statistic(char *str)
{
assert(str != NULL);
if(str == nullptr)
{
return;
}
int alpha = 0;
int num = 0;
int blank = 0;
int other = 0;
while(*str != '\0')
{
if(isalpha(*str))
{
alpha++;
}
else if(isdigit(*str))
{
num++;
}
else if(*str == ' ')
{
blank++;
}
else
{
other++;
}
str++;
}
printf("字母%d个\n数字%d个\n空格%d个\n其他字符%d个\n", alpha, num, blank, other);
}
int Get_num(int n, int a)
{
int tmp = a;
for(int i=0; i<n; i++)
{
tmp = tmp*10+2;
}
return tmp;
}
int GetSum(int n, int a)
{
int sum = 0;
for(int i=0; i<n; i++)
{
sum += Get_num(i, a);
}
return sum;
}
bool IsFlower(int n)
{
bool tag = false;
int sum = 0;
int m = n;
int tmp = 0;
while(m != 0)
{
tmp = m%10;
sum += tmp*tmp*tmp;
m /= 10;
}
return sum == n;
}
bool IsPerfectNum(int n)
{
int tmp = 0;
for(int i=1; i<n; i++)
{
if(n%i == 0)
{
tmp += i;
}
}
return tmp == n;
}
void PrintPerfectNum(int n)
{
printf("%d its factors are 1", n);
for(int i=2; i<n; i++)
{
if(n%i == 0)
{
printf(",%d", i);
}
}
printf("\n");
}
int Peach()
{
int sum = 1;
for(int i=1; i<10; i++)
{
sum = (sum+1)*2;
}
return sum;
}
int Peach_digui(int n)
{
if(n == 1)
{
return 1;
}
else
{
return (Peach_digui(n-1)+1)*2;
}
}
void Match()
{
for(char A = 'X'; A<='Z'; A++)
{
for(char B = 'X'; B<='Z'; B++)
{
for(char C='X'; C<='Z'; C++)
{
if(A!='X' && C!='X' && C!='Z' && A!=B && B!=C && A!=C)
{
printf("A->%c\n", A);
printf("B->%c\n", B);
printf("C->%c\n", C);
}
}
}
}
}
int main()
{
Match();
printf("%d\n", 'X');
printf("%d\n", Peach_digui(10));
char *str = "aaaAAA123 ;;;aaa";
Statistic(str);
int sum = GetSum(5, 2);
printf("%d\n", sum);
for(int i=100; i<1000; i++)
{
bool tag = IsFlower(i);
if(tag)
{
printf("%d is flower\n", i);
}
}
for(int i=2; i<1000; i++)
{
bool tag = IsPerfectNum(i);
if(tag)
{
PrintPerfectNum(i);
}
}
return 0;
}