回文数
cpp
#include <stdio.h>
int main(){
int a,b,c=0,sum;
scanf("%d",&a);
b=a;
while(b!=0){
c = b%10 + c*10;
b = b/10;
}
if(c==a){
printf("yes");
}
return 0;
}
水仙花
cpp
#include <stdio.h>
#include <math.h>
int main(){
int a,b,c=0,sum;
scanf("%d",&a);
b = a;
while(b>0){
c = c + pow(b%10,3);
b = b/10;
}
if(c==a){
printf("yes");
}
return 0;
}
生成一定范围内的随机数
C语言:生成随机数(并非固定的随机数)------rand()、srand()_c语言生成随机数-CSDN博客
cpp
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(){
int a;
srand(unsigned(time(NULL)));
a = (rand()%100)+1;
printf("%d",a);
return 0;
}
求二叉树的最大宽度
1.队列修改:修改了rear和front的指代意思,当front指向一个数组下标的时候的意思是这个元素已经从队列中出去了
2.这个二叉树的插入,我们用户的输入就是输入一个带#号的二叉树的先序序列如图
cpp
void List(TreeNode* T){
q[++rear] = T;
int max = 0;
int sum[100]={0};
int level = 1;
int r = 0;
while(!IsEmpty()){
TreeNode *p = q[++front];
if(p->lChild!=NULL){
q[++rear]=p->lChild;
}
if(p->rChild!=NULL){
q[++rear]=p->rChild;
}
sum[level]++;
printf("判断之前%c r=%d e=%d b=%d level=%d\n",p->data,r,rear,front,level);
if(front==r){
level++;
r = rear;
}
printf(" %c r=%d e=%d b=%d level=%d\n",p->data,r,rear,front,level);
}
printf("\n");
for(int i=1;sum[i]!=0;i++){
if(sum[i]>max){
max = sum[i];
}
}
printf("%d",max);
}