【C语言】刷题计划第一期——洛谷编程题目集

如果你已经掌握了一些C语言的基本语法,想练习自己写代码的能力,建议大家可以看一下博主整理题目,从入门到进阶都有。每个阶段需要的技能会有差异,大家要补充对应的基础知识。一起加油,那么一键三连我们开始发车。


目录

入门组

1,车厢重组问题

2,硬币翻转

3,Peter的烟

4,子数整数

普及组

1,级数求和

2,陶陶摘苹果

3,校门外的树

4,明明的随机数

5,质因素分解

6,不高兴的津津

7,津津的储蓄计划

结语


入门组

1,车厢重组问题

算法标签【模拟,排序】

【C语言】刷题计划第一期——洛谷编程题目集_第1张图片

int main() 
{
	int n = 0;
	int arr[10000];
	int tmp = 0;
	int cnt = 0;
	scanf("%d", &n);
	for (int i = 0; i < n; i++) 
	{
		scanf("%d ", &arr[i]);
	}
	//冒泡
	for (int i = 0; i < n; i++) 
	{
		for (int j = 0; j < n - i-1; j++) 
		{
			if (arr[j] > arr[j + 1]) 
			{
				tmp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = tmp;
				cnt++;
			
			}
		}
	}
	printf("%d", cnt);
	return 0;
}

2,硬币翻转

算法标签【模拟,搜索,数学】

【C语言】刷题计划第一期——洛谷编程题目集_第2张图片

int main()
{
	int arr[101];
	int n = 0;
	scanf("%d", &n);
	printf("%d\n", n);
	for (int i = 1; i <= n; i++)
		arr[i] = 0;
	for (int i = 1; i <= n; i++) 
	{
		for (int j = 1; j <= n; j++) 
		{
			if (j != i) 
			{
				arr[j] = 1 - arr[j];
			}
		}
		for (int j = 1; j <= n; j++)
		{
			printf("%d", arr[j]);
		}
		printf("\n");
	}
	return 0;
}

3,Peter的烟

算法标签【模拟,数学】

【C语言】刷题计划第一期——洛谷编程题目集_第3张图片

int Add(int yd,int n,int k)
{
	int smok = 0;
	smok += n;
	yd += n;
	while (yd>=k) 
	{
		yd -= k;
		smok++;
		yd++;
	}
	return smok;
}
int main() 
{
	int n = 0;
	int k = 0;
	int yd = 0;
	scanf("%d %d", &n, &k);
	int smok = Add(yd, n, k);
	printf("%d", smok);
	return 0;
}

4,子数整数

算法标签【字符串,搜索,枚举】

【C语言】刷题计划第一期——洛谷编程题目集_第4张图片

int main() 
{
	int k = 0;
	scanf("%d", &k);
	int sub1, sub2, sub3;
	int i = 0;
	int flag = 0;
	for (i = 10000; i <= 30000; i++) 
	{
		sub1 = i / 100;
		sub2 = i % 10000/ 10;
		sub3 = i % 1000;
		if ((sub1 % k == 0) && (sub2 % k == 0) && (sub3 % k == 0)) 
		{
			printf("%d\n", i);
			flag = 1;
		}
	}
	if (flag != 1) 
	{
		printf("No");
	}
	return 0;
}

普及组

1,级数求和

算法标签【数学】

【C语言】刷题计划第一期——洛谷编程题目集_第5张图片

int main() {
	int k, n;
	double sn = 0.0;
	scanf("%d", &k);
	for (n = 1;; n++) {
		sn += 1.0 / n;
		if (sn > k * 1.0)
			break;
	}
	printf("%d", n);
	return 0;
}

2,陶陶摘苹果

算法标签【模拟】

【C语言】刷题计划第一期——洛谷编程题目集_第6张图片

int main() 
{
	int n = 30;
	int arr[10];
	int len = sizeof(arr) / sizeof(arr[0]);
	int i = 0;
	for (i = 0; i < len; i++) 
	{
		scanf("%d ", &arr[i]);
	}
	int k = 0;
	scanf("%d", &k);
	int j = 0;
	int count1 = 0;
	int count2 = 0;
	for (j = 0; j < len; j++) 
	{
		if (k == arr[j]) 
		{
			count1++;
		}
		else if (k + n >= arr[j]) 
		{
			count2++;
		}
	}
	printf("%d", count1+count2);
	return 0;
}

3,校门外的树

算法标签【模拟】

【C语言】刷题计划第一期——洛谷编程题目集_第7张图片

int main()
{
	int l, m;
	int arr[10000];
	int count = 0;
	int a = 0;
	int b = 0;
	scanf("%d %d", &l, &m);
	for (int i = 0; i <= l; i++) 
	{
		arr[i] = 0;
	}
	for (int i = 1; i <= m; i++) 
	{
		scanf("%d %d", &a, &b);
		for (int j = a; j <= b; j++) 
		{
			if (arr[j] == 0) 
			{
				arr[j] = 1;
			}
		}
	}
	for (int i = 0; i <= l; i++) 
	{
		if (arr[i] == 0) 
		{
			count++;
		}
	}
	printf("%d", count);
	return 0;
}

4,明明的随机数

算法标签【模拟,排序】

【C语言】刷题计划第一期——洛谷编程题目集_第8张图片

int main() {
    int N, a[1001] = { 0 }, t, i;
    int count = 0;
    scanf("%d", &N);
    for (i = 0; i < N; i++) {
        scanf("%d", &t);
        if (a[t] == 0) {
            a[t] = t;
            count++;
        }
    }
    printf("%d\n", count);
    for (i = 0; i < 1001; i++) {
        if (a[i] != 0)
            printf("%d ", a[i]);
    }
	return 0;
}


5,质因素分解

算法标签【数学,素数判断,筛法,质数】

【C语言】刷题计划第一期——洛谷编程题目集_第9张图片

int main() 
{
	int n = 0;
	scanf("%d", &n);
	int i, j, max;
	for (i = 2; i < sqrt(n); i++) 
	{
		if (n % i == 0) 
		{
			j = n / i;
			break;
		}
	}
	if (i > j) 
	{
		max = i;
	}
	else 
	{
		max = j;
	}
	printf("%d", max);
	return 0;
}

6,不高兴的津津

算法标签【枚举】

【C语言】刷题计划第一期——洛谷编程题目集_第10张图片

int main() 
{
	int n = 0;
	int m = 0;
	int i = 0;
	int max_time = 0;
	int weekday = 0;
	for (i = 0; i < 7; i++) 
	{
		scanf("%d %d", &n, &m);
		if (n + m > max_time && n + m > 8) 
		{
			weekday = i + 1;
			max_time = n + m;
		}
	}
	printf("%d", weekday);
	return 0;
}

7,津津的储蓄计划

算法标签【模拟,枚举】

【C语言】刷题计划第一期——洛谷编程题目集_第11张图片

int main() 
{
	int y_money = 0;
	int s_money = 0;
	int c_money = 0;
	for (int i = 1; i <= 12; i++) 
	{
		scanf("%d", &y_money);
		s_money = s_money + 300 - y_money;
		if (s_money < 0) 
		{
			printf("-%d", i);
			return 0;
		}
		else 
		{
			c_money += s_money / 100;
			s_money %= 100;
		}
	}
	printf("%d", 120 * c_money + s_money);
	return 0;
}

结语

        博主也是初学者,欢迎大家阅读和指正。当然如果觉得对大家有帮助一定要关注博主,后续也会有更多的有针对性的题目带给大家,大家一起加油,键盘敲烂,年薪三十万!!!

你可能感兴趣的:(c语言,算法,排序算法,数据结构)