22.01.17

算法竞赛--入门经典

第二章

1.100~999的水仙花数

#include<stdio.h>
#include<math.h>
int main(){
	for(int i=100;i<=999;i++){
		int a=i/100;
		int b=(i/10)%10;
		int c=i%10;
		if(pow(a,3)+pow(b,3)+pow(c,3)==i)
			printf("%d\n",i);
	}
	return 0;
}

2.韩信点兵

#include <stdio.h>
int main(){
    int a,b,c;
    while (scanf("%d%d%d",&a,&b,&c)==3){
        int flags=1;
        for (int i=10;i<=99;i++){
            if (i%3==a&&i%5==b&&i%7==c){
                printf("%d\n",i);
                flags=0;
                break;
            }
        }
        if (flags)
            printf("No answer\n");
    }
    return 0;
}

3.倒三角

#include<stdio.h>
int main(){
	int n;
	scanf("%d",&n);
	int m=n;
	while(n){
		for(int i=1;i<=m-n;i++){
			printf(" ");
		} 
		for(int j=1;j<=2*n-1;j++){
			printf("#");
		}
		printf("\n");
		n--;
	}
	return 0;
}

4.子序列的和

#include<stdio.h>
#include<math.h>
int main(){
	long long n,m;
	while(scanf("%d",&n)==1){
		scanf("%d",&m);
		if(m==0||n==0)
			break;
		double sum=0;	
		for(long long i=n;i<=m;i++){
			sum+=(double)1/pow(i,2);
		}
		printf("%.5lf\n",sum);
	}
	return 0;
}

先输入再判断 

5.分数化小数

#include<stdio.h>
int main(){
	int a,b,c;
	while(scanf("%d",&a)==1){
		scanf("%d%d",&b,&c);
		if((a==b&&a==c&&a==0)||b==0)
			break;
		//printf("%d %d %d\n",a,b,c);
		double t=(double)a/b;
		printf("%.*lf\n",c,t);    //控制小数位
	}
	return 0;
}

补充:

%e 以指数形式输出 float 类型,输出结果中的 e 小写;

 %E 以指数形式输出 float 类型,输出结果中的 E 大写;

%le 以指数形式输出double 类型; 

6.排列

(2条消息) 《算法竞赛入门经典》枚举排列总结_算法竞赛爱好者-CSDN博客https://blog.csdn.net/u012181348/article/details/77998546?ops_request_misc=&request_id=&biz_id=102&utm_term=%E7%AE%97%E6%B3%95%E7%AB%9E%E8%B5%9B%E5%85%A5%E9%97%A8%E7%BB%8F%E5%85%B8%20%E6%8E%92%E5%88%97&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-77998546.first_rank_v2_pc_rank_v29&spm=1018.2226.3001.4187

(2条消息) 《算法竞赛入门经典》(第2版)——习题2-6 排列(permutation)_wowhhhgd的Blog-CSDN博客https://blog.csdn.net/weixin_44792920/article/details/98784060?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164239673416781683948660%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=164239673416781683948660&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~baidu_landing_v2~default-4-98784060.first_rank_v2_pc_rank_v29&utm_term=%E7%AE%97%E6%B3%95%E7%AB%9E%E8%B5%9B%E5%85%A5%E9%97%A8%E7%BB%8F%E5%85%B8+%E6%8E%92%E5%88%97&spm=1018.2226.3001.4187

7.(P39)开灯问题

两种状态:

!:0 1

*-1:1 -1

#include<stdio.h>
int ans[1005];
int main(){
	int n,k;
	scanf("%d%d",&n,&k);
	for(int i=1;i<=n;i++)
		ans[i]=1;
	for(int i=2;i<=k;i++)
		for(int j=2;j<=n;j++)
			if(j%i==0)
				ans[j]*=-1;
	for(int i=1;i<=n;i++)
		if(ans[i]==1)
			printf("%d ",i);
	printf("\n");
	return 0;
}
#include<stdio.h>
#include<string.h>
int a[1005];
int main(){
	int n,k,first=1;
	scanf("%d%d",&n,&k);
	memset(a,0,sizeof(a));
	for(int i=1;i<=k;i++)
		for(int j=1;j<=n;j++)
			if(j%i==0)
				a[j]=!a[j];
	for(int i=1;i<=n;i++)
		if(a[i]){
			if(first)
				first=0;
			else
				printf(" ");
			printf("%d",i);
		}
	printf("\n");
	return 0;
}

格式:

int first=1;
if(first)
    first=0;
else
	printf(" ");

8.蛇形填数(P39)

#include<stdio.h>
#include<string.h>
int ans[10][10];
int main(){
	int n,tot,x,y;
	memset(ans,0,sizeof(ans)); 
	scanf("%d",&n);
	ans[x=0][y=n-1]=tot=1;
	while(tot<n*n){
		while(x+1<n&&!ans[x+1][y])
			ans[++x][y]=++tot;
		while(y-1>=0&&!ans[x][y-1])
			ans[x][--y]=++tot;
		while(x-1>=0&&!ans[x-1][y])
			ans[--x][y]=++tot;
		while(y+1<n&&!ans[x][y+1])
			ans[x][++y]=++tot;
	}
	for(x=0;x<n;x++){
		for(y=0;y<n;y++)
			printf("%3d",ans[x][y]);
		printf("\n");
	}
	return 0;
}

二维数组——坐标:

(3条消息) P1548 [NOIP1997 普及组] 棋盘问题_ppddcsz-CSDN博客https://blog.csdn.net/weixin_60178940/article/details/122090055

#include<stdio.h>
#include<math.h>
int ans[110][110];
int main(){
	int a,b,squ=0,ret=0;
	scanf("%d%d",&a,&b);
	for(int x1=0;x1<a;x1++)
		for(int y1=0;y1<b;y1++)
			for(int x2=x1+1;x2<=a;x2++)
				for(int y2=y1+1;y2<=b;y2++){
					if(abs(x1-x2)==abs(y1-y2))
						squ++;
					else
						ret++;
					}
	printf("%d %d\n",squ,ret);
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Ubuntu 22.01 版本中,目前截屏功能可能会出现闪退的问题。与原生的 Linux 版本 2.1.1 相比,这个版本使用起来更加方便,但仍然存在一些功能缺失的问题,比如无法@某人,无法引用消息,无法搜索联系人和会话。 如果你希望解决截屏功能闪退的问题,可以尝试以下方法: 1. 打开终端,并输入以下命令: sudo apt-get install -f -y ./ukylin-wine_70.6.3.25_amd64.deb sudo apt-get install -f -y ./ukylin-wechat_3.0.0_amd64.deb 这些命令将安装所需的软件包,可能会修复截屏功能的问题。 此外,根据引用,Ubuntu 22.01 使用的是 GNU C Library 版本 2.35。这个版本的 C Library 提供了与操作系统交互的基本功能,包括文件操作、内存管理等。在使用 Ubuntu 22.01 进行开发或者运行程序时,可以参考这个版本的 C Library 文档,以便更好地理解和使用系统提供的功能。 请注意,这些方法仅供参考,具体解决问题的方式可能因个人环境和系统配置而有所不同。建议在尝试之前备份重要数据,并确保对系统进行适当的更新和维护。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [【ubuntu22.04 安装优麒麟wine封装版微信】](https://blog.csdn.net/riyueyi/article/details/124848366)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [WSL和双系统Ubuntu的CPU性能差异](https://blog.csdn.net/ZhangRelay/article/details/126004498)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值