上机练习第28天

第一题

个人总结:接收数据后,若要转换成N进制,表明小于N正常表示,大于N进1,则需要循环算出m/N之后的余数,直至最后为m/N=0退出循环,而在表示余数时,当前余数>=10则需要用字母表示,则A=10,余数=10为A,余数=11为B,则减去10+'A'即为正确表示。最后用数组保存每次余数的值,按逆序输出即可。

代码如下:

复制代码
#include <stdio.h>
char exchange(int n){
	if(n>=0&&n<=9) return n+'0';
	else return n-10+'A';
}
int main(){
	int m,N;
	while(scanf("%d %d",&m,&N)!=EOF){
		if(m==0){
			printf("0\n");
			continue;
		}
		char temp[32];
		int num=0;
		int result;
		while(m>0){
			result=m%N;
			temp[num++]=exchange(result);
			m/=N;
		}
		for(int i=num-1;i>=0;i--)printf("%c",temp[i]);
		printf("\n");
	}
	return 0;
}

第二题

个人总结:设置一个char数组接收一行数据,用strlen()算出数组的长度,依次遍历数组每个数据。设置int类型变量result保存当前总数,sign为当前符号(1为加,-1为减),num用于接收多位数据。当前为空格直接跳一个数据,当前为"+"sign置1,"-"置-1,其余再判断while当前i<len且isdigit(数据)(isdigit()用于判断当前char类型数据是否为"0"-"9"是返回1,不是返回0),num=num*10+arr[i]-'0',能用num表示多位数,i++(此为第二次while内),其余i++在其他条件下设置。最后输出result即可。

代码如下:

复制代码
#include <stdio.h>
#include<string.h>
#include<ctype.h>
int main(){
	char arr[1000];
	while(gets(arr)!=NULL){
			if(strlen(arr)==0) continue;
			int result=0;
			int num=0;
			int sign=1;
			int i=0;
			int len=strlen(arr);
			while(i<len){
				if(arr[i]==' ') {
					i++;
					continue;
				}
				else if(arr[i]=='+') {
					i++;
					sign=1;
				}
				else if(arr[i]=='-'){
					i++;
					sign=-1;
				}
				else{
					num=0;
					while(i<len&&isdigit(arr[i])){
						num=num*10+(arr[i]-'0');
						i++;
					}
					result+=sign*num;
				} 
			}
			printf("%d\n",result);
	}
	return 0;
}

第三题

个人总结:数组接收数据,设置两个int变量指向当前遍历的下标(i)和所覆盖的下标(sum),当前下标所指数据为删除数据时,遍历下标++,其余条件两个下标同时++,最后遍历结束设置sum下标数据为'\0'(终止符)。%s输出数组即可。

代码如下:

复制代码
#include <stdio.h>
#include<string.h>
int main(){
	char arr[1000];
	while(gets(arr)!=NULL){
		char del;
		scanf("%c",&del);
		getchar();	
		int len=strlen(arr);
		if(len==0) continue;
		int sum=0;
		int i=0;
		while(i<len){
			if(arr[i]==del) {
				i++;
			}
			else {
				arr[sum]=arr[i];
				i++;
				sum++;
			}	
		}
		arr[sum]='\0';
		printf("%s\n",arr);
	}
	return 0;
}

翻译

共享仓库的优缺点如下:

对于共享大型数据是个高效的办法。无需显示传输数据从一个子系统到另一子小系统。

然而子系统必须允许授权给共享数据模型。每个所需明确的工具需要妥协是不可避免的。在这种妥协下的性能可能会产生事与愿违的结果。如果子系统的数据模型不适应此模式。那么集成的新型子系统可能会变得困难或不可能。

生产数据的子系统无需考虑其他子系统如何使用此数据。

然而,进化可能很困难,根据商定的数据模式下产生一大栏信息。翻译此数据至新模型成本必然高昂;这可能很困甚至不可能。

类似备份,安全,访问控制以及从错误中恢复此类活动是集中式的。仓库管理员有此类职责。工具可以集中于他们主要供能而不用担忧此类问题。

然而,在安全,恢复,以及备份政策上,不同子系统可能拥有不同的规定。仓库模型会将相同的策略强加于所有子系统上。

共享模型通过仓库模式可见。只要新工具和商定模式下的数据兼容,集成他们是轻而易举的。

然而,在多台机器上分布仓库可能会很困难。尽管可以在逻辑上构建一个集中式仓库是可能的,但可能会存在数据冗余与数据不一致的问题。

在上述模型中,仓库模型是被动型的,被控制权由所使用仓库的子系统负责。可代替的方法就是源自使用"黑板"模型的人工智能系统,当特定数据可用时,会触发子系统。当仓库数据形式结构化较低时,这种方法是适合的。关于激活哪个工具的决定,只有在数据被分析后才能做出。

单词打卡

相关推荐
niuniudengdeng1 小时前
一种基于HFF4材料的自消亡类脑芯片架构构想:把神经网络的训练变成物理化学过程
人工智能·神经网络·算法
载数而行5202 小时前
算法系列1之最小生成树
c语言·数据结构·c++·算法·贪心算法
额,不知道写啥。2 小时前
HAO的DP
c++·算法·深度优先·动态规划
重生之后端学习2 小时前
208. 实现 Trie (前缀树)
java·开发语言·数据结构·算法·职场和发展·深度优先
niuniudengdeng2 小时前
一种基于XRF实景建模与AI世界生成的一步闭式解光线追踪视觉生成模型
人工智能·数学·算法
mit6.8242 小时前
树上滑窗
算法
ADDDDDD_Trouvaille2 小时前
2026.2.19——OJ89-91题
c++·算法
郝学胜-神的一滴2 小时前
Effective Modern C++ 条款39:一次事件通信的优雅解决方案
开发语言·数据结构·c++·算法·多线程·并发
@atweiwei2 小时前
Rust 实现 LangChain
开发语言·算法·rust·langchain·llm·agent·rag