蓝桥杯编程题

算法代码:

#include<stdio.h>//a+b问题
int main()
{
int a, b;
scanf_s("%d%d", &a, &b);
printf("%d", a + b);
return 0;
}
#include<stdio.h>//数列排序
#include<stdlib.h>
void Print(int *data, int n)
{
int i;
for (i = 0; i < n; i++)
{
printf("%d", data[i]);
}
printf("\n");
}
int Split(int*data, int pre, int rear)
{
int value = data[pre];
while (pre < rear)
{
while (data[rear] >= value&&pre < rear)
rear--;
while (data[pre] < value&&pre < rear)
pre++;
}
data[pre] = value;
return pre;
}
void QuickSort(int *data, int pre, int rear)
{
if (pre < rear)
{
int mid = Split(data, pre, rear);
QuickSort(data, pre, mid - 1);
QuickSort(data, mid+1,rear);


}
}
int main()
{
int i, n;
int *data;
scanf_s("%d", &n);
data = (int*)malloc(sizeof(int)*n);
for (i = 0; i < n; i++)
{
scanf_s("%d", &data[i]);
}
QuickSort(data, 0, n - 1);
Print(data, n);
return 0;
#include<stdio.h>
#include<string.h>
#include<math.h>
int main()
{
double sum = 0, x;
char a[8];
int len, i = 0;
gets_s(a);
len = strlen(a);
while (len)
{
if (a[len - 1] >= 'A'&&a[len - 1] <= 'F')
x = (a[len - 1] - '7')*pow(16, i++);
else
x = (a[len - 1] - '0')*pow(16, i++);
sum += x;
len--;
}
printf("%.Olf", sum);
return 0;
#include<stdio.h>
int main()
{
int a, b, c, d,i;
for (i = 1000; i <= 9999; i++)
{
a = i / 1000;
b = i / 100 % 10;
c = i / 10 % 10;
d = i % 10;
if (a == d&&b == c)
printf("%d\n", i);
}
return 0;
#include<stdio.h>
int main()
{
int i, j, k, n;
for (n = 100; n < 1000; n++)
{
i = n / 100;
j = n / 10 % 10;
k = n % 10;
if (i * 100 + j * 10 + k == i*i*i + j*j*j + k*k*k);
printf("%d\n", n);
}
return 0;
#include<stdio.h>
#define MAXN 40
int n;
int a[MAXN][MAXN];
int main()
{
int i, j;
scanf_s("%d", &n);
a[0][0] = 1;
for (i = 0; i < n; ++i)
{
a[i][0] = a[i][i] = 1;
for (j = 1; j < i; ++j)
a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
}
for (i = 0; i < n; ++i)
{
for (j = 0; j <= i; ++j)
printf("%d", a[i][j]);
printf("\n");
}
return 0;
#define use _CRT_SECURE_NO_WARNINGS
#include<stdio.h>//16进制转10进制
#include<string.h>
#include<math.h>
int main()
{
double sum = 0, x;
char a[8];
int len, i = 0;
gets(a);
len = strlen(a);
while (len)
{
if (a[len - 1] >= 'A'&&a[len - 1] <= 'F')
x = (a[len - 1] - '7')*pow(16, i++);//pow()计算x的y次幂
else
x = (a[len - 1] - '0')*pow(16, i++);
sum += x;
len--;
}
printf("%.0lf", sum);
return 0
#include<stdio.h>//十进制转十六进制
#include<stdlib.h>
char data[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
void Print(char*num, int n)
{
int i;
for (i = n - 1; i >= 0; i--)
printf("%c", num[i]);
printf("\0");
printf("\n");
}
int Transform(char*num, long long value)
{
int n = 0;
while (value >= 16)
{
num[n++] = data[value % 16];
value /= 16;
}
num[n++] = data[value % 16];
return n;
}
int main()
{
long long value;
char num[10];
int n;
scanf_s("%l64d", &value);
n = Transform(num, value);
Print(num, n);
return 0;
#include<stdio.h>//特殊的回文数
int main()
{
int a, b, c, d, e, f, t, all;
scanf_s("%d", &t);
for (a = 1; a < 10; a++)
{
for (b = 0; b < 10; b++)
{
for (c = 0; c < 10; c++)
{
for (d = 0; d < 10; d++)
{
for (e = 0; e < 10; e++)
{
for (f = 0; f < 10; f++)
{
if (a == f)
{
if (b == e)
{
if (c == d)
{
all = a + b + c + d + e + f;
if (all == t)
{
printf("%d\n", a * 100000 + b * 10000 + c * 1000 + d * 100 + e * 10 + f);
}


}


}


}


}


}


}


}


}
for (a = 1; a < 10; a++)
{
for (b = 0; b < 10; b++)
{
for (c = 0; c < 10; c++)
{
for (d = 0; d < 10; d++)
{
for (e = 0; e < 10; e++)
{




if (a == e)
{
if (b == d)
{


{
all = a + b + c + d + e;
if (all == t)
{
printf("%d\n", a * 10000 + b * 1000 + c * 100 + d * 10 + e);
}


}


}


}
}






}


}


}


}
return 0;




}
#include<stdio.h>//特殊的数字
int main()
{
int i, j, k, n;
for (n = 100; n < 1000; n++)
{
i = n / 100;
j = n / 10 % 10;
k = n % 10;
if (i * 100 + j * 10 + k == i*i*i + j*j*j + k*k*k)
printf("%d\n", n);
}
#define MAXN 10001
#include<stdio.h>//查找整数
int n, a, ans;
int s[MAXN];
int main()
{
int i;
scanf_s("%d", &n);
for (i = 0; i < n; i++)
scanf_s("%d", &s[i]);
scanf_s("%d", &a);
ans = -1;
for (i = 0; i < n; ++i)
{
if (s[i] == a)
{
ans = i + 1;
break;
}
}
printf("%d", ans);
return 0;
#include<stdio.h>//数列特征
#define MAXSIZE 10000
int main()
{
int i, n, value;
int max = -MAXSIZE;
int min = MAXSIZE;
int sum = 0;
scanf("%d", &n);
for (i = 0; i < n; i++)
{
scanf("%d", &value);
if (value>max) max = value;
if (value < min)min = value;
sum += value;


}
/*printf("%d\n", max);
printf("%d\n", min);
printf("%d\n", sum);
return 0;
}*/
#include<stdio.h>


#define MAXN 100
int n;
int a[MAXN][MAXN];
int main()
{
int i, j;
scanf_s("%d", &n);
a[0][0] = 1;
for (i = 0; i < n; ++i)
{
a[i][0] = a[i][i] = 1;
for (j = 1; j < i; ++j)
a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
}
for (i = 0; i < n; ++i)
{
for (j = 0; j <= i; ++j)
printf("%d", a[i][j]);
printf("\n");
}
return 0;
#include<stdio.h>//字母图形
#include<stdlib.h>
#define MAXSIZE 26
输出
void Print(char matrix[MAXSIZE][MAXSIZE], int n, int m)
{
int i, j;
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
{
printf("%c", matrix[i][j]);
}
printf("\n");
}
}
实现字母图形
void Drawing(int n, int m)
{
int i, j;
int point = 0;
char str;
char matrix[MAXSIZE][MAXSIZE];
for (i = 0; i < n; i++)
{
str = 'A';
for (j = i; j < m; j++)
{
matrix[i][j] = str++;
}
str = 'A';
for (j = i - 1; j >= 0; j--)
{
matrix[i][j] = ++str;
}
}
Print(matrix, n, m);




}
int main()
{
int n, m;
scanf_s("%d%d", &n, &m);
Drawing(n, m);
return 0;
}
#include<stdio.h>//01字符串
int main()
{
int i, j, k, l, m;
for (i = 0; i <= 1; ++i)
{
for (j = 0; j <= 1; ++j)
{
for (k = 0; k <= 1; ++k)
{
for (l = 0; l <= 1; ++l)
{
for (m = 0; m <= 1; ++m)
{
printf("%d%d%d%d%d\n", i, j, k, l, m);
}
}
}
}
}
return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_40797414/article/details/79587475