提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
浙江大学翁凯老师的课程习题,自己手敲,当做练习,部分地方可能有改动,每次记录上传为4或者5道题目
一、求符合给定条件的整数集
要求:给定不超过6的正整数a,考虑从a开始的连续4个数字,输出所有有他 们组成的无重复数字的三位数
输出格式:递增,每行6个整数,整数间隔空格,但行末不能有多余空格
代码
#include "pch.h"
#include<stdio.h>
using namespace std;
int main()
{
int a;
scanf_s("%d", &a);
int i, j, k;
int cnt = 0;
i = a;
while (i <= a + 3)
{
j = a;
while (j <= a + 3)
{
k = a;
while (k <= a + 3)
{
if (i != j && i != k && j != k)
{
printf("%d%d%d", i, j, k);
cnt++;
if (cnt != 6)
{
printf(" ");
}
else {
printf("\n");
cnt = 0;
}
}
k++;
}
j++;
}
i++;
}
return 0;
}
二、水仙花数,但是动态实现
要求:输入数字n,表示n位水仙花数,得到n位所有水仙花数
输出格式:递增,每个数字一行
代码
#include "pch.h"
#include<stdio.h>
using namespace std;
int main()
{
int n;
scanf_s("%d", &n);
int first = 1;
int i = 1;
while (i < n)
{
first *= 10;
i++;
}
printf("水仙花数从%d开始测试\n", first);
i = first;
while (i < first * 10)
{
int t = i;
int sum = 0;
do
{
int d = t % 10;
t /= 10;
int p = d;
int j = 1;
while (j < n)
{
p *= d;
j++;
}
sum += p;
} while (t > 0);
if (sum == i)
{
printf("%d\n", i);
}
i++;
}
return 0;
}
三、打印九九口诀表
要求:小学九九口诀表,输入n是多少,口诀表到哪里为止
输出格式:下三角形状,等号右边数字占4位,左对齐
代码
#include "pch.h"
#include<stdio.h>
using namespace std;
int main()
{
int n;
scanf_s("%d", &n);
int i, j;
i = 1;
while (i <= n)
{
j = 1;
while (j <= i)
{
printf("%d*%d=%d", j, i, i*j);
//内循环j,当i=9,j递增,从1到9,九九乘法表是1x9,2x9,3x9,
//所以先输出变化的j,后输出不变的i
if (i*j < 10)
{
printf(" ");
}
else
{
printf(" ");
}
j++;
}
printf("\n");
i++;
}
return 0;
}
四、统计素数并求和
要求:统计给定M到N之间的所有素数的个数,并求和
输出格式:个数空格和
代码
#include "pch.h"
#include<stdio.h>
using namespace std;
int main()
{
int m, n;
int cnt = 0;
int sum = 0;
scanf_s("%d %d", &m, &n);
//解决k<0的问题
if (m == 1)
{
m = 2;
}
//利用isPrime遍历范围内的质数,从2开始一直除,只要出现因数,
//直接跳出循环,整个范围内都没有,isP不变,计数加一,和加
for (int i = m; i <= n; i++)
{
int isPrime = 1;
for (int k = 2; k < i - 1; k++)
{
if (i%k == 0)
{
isPrime = 0;
break;
}
}
if (isPrime)
{
cnt++;
sum += i;
}
}
printf("%d %d\n", cnt, sum);
return 0;
}
总结
C语言基础学习