zoukankan      html  css  js  c++  java
  • 1094 谷歌的招聘 (20 分)C语言

    2004 年 7 月,谷歌在硅谷的 101 号公路边竖立了一块巨大的广告牌(如下图)用于招聘。内容超级简单,就是一个以 .com 结尾的网址,而前面的网址是一个 10 位素数,这个素数是自然常数 e 中最早出现的 10 位连续数字。能找出这个素数的人,就可以通过访问谷歌的这个网站进入招聘流程的下一步。
    在这里插入图片描述

    自然常数 e 是一个著名的超越数,前面若干位写出来是这样的:e = 2.718281828459045235360287471352662497757247093699959574966967627724076630353547594571382178525166427427466391932003059921… 其中粗体标出的 10 位数就是答案。

    本题要求你编程解决一个更通用的问题:从任一给定的长度为 L 的数字中,找出最早出现的 K 位连续数字所组成的素数。

    输入格式:
    输入在第一行给出 2 个正整数,分别是 L(不超过 1000 的正整数,为数字长度)和 K(小于 10 的正整数)。接下来一行给出一个长度为 L 的正整数 N。

    输出格式:
    在一行中输出 N 中最早出现的 K 位连续数字所组成的素数。如果这样的素数不存在,则输出 404。注意,原始数字中的前导零也计算在位数之内。例如在 200236 中找 4 位素数,0023 算是解;但第一位 2 不能被当成 0002 输出,因为在原始数字中不存在这个 2 的前导零。

    输入样例 1:

    20 5
    23654987725541023819
    

    输出样例 1:

    49877
    

    输入样例 2:

    10 3
    2468024680
    

    输出样例 2:

    404
    
    #include <stdio.h>
    int sam(int m){//判断素数 
    	int i;
    	if(m<2)	return 0;
    	for(i=2;i*i<=m;i++){
    		if(m%i==0)	return 0;
    	}
    	return 1;
    }
    int main(){
    	int L,k,i,num;
    	char n[1000],arr[10]={0};//字符长度为 L ,K 位连续数字,长度为 L 的正整数 N字符串
    	scanf("%d %d %s",&L,&k,n);//L==strlen(n)
    	for(i=0;i<=L-k;i++){
    		strncpy(arr,n+i,k);//strncpy()函数用于将指定长度的字符串复制到字符数组
    		if(sam(atoi(arr))){//atoi()把字符串转换成整型数的一个函数
    			printf("%s",arr);
    			return 0;
    		} 
    	}
    	printf("404");
    	return 0;
    }
    

    strncpy()函数

    • char *strncpy(char *dest, const char *src, size_t n) 把 src 所指向的字符串复制到 dest,最多复制 n 个字符。当 src 的长度小于 n 时,dest 的剩余部分将用空字节填充。
    • 格式
    char *strncpy(char *dest, const char *src, size_t n)
    char *strncpy(存储复制内容的目标数组, 要复制的字符串, 从源中复制的字符数)
    
    • dest – 指向用于存储复制内容的目标数组。
    • src – 要复制的字符串。
    • n – 要从源中复制的字符数。
    • 该函数返回最终复制的字符串。
    • 案例
    #include <stdio.h>
    int main(){
       char src[40];
       char dest[12];
      
       memset(dest, '', sizeof(dest));
       strcpy(src, "This is codercto.com");
       strncpy(dest, src, 10);
    
       printf("最终的目标字符串: %s
    ", dest);
       
       return(0);
    }
    
    • 编译并运行上面的程序,这将产生以下结果:
    最终的目标字符串: This is ru
    

    atoi()函数

    • int atoi(const char *str) 把参数 str 所指向的字符串转换为一个整数(类型为 int 型)。
    • 格式
    int atoi(const char *str)
    
    • str – 要转换为整数的字符串。
    • 该函数返回转换后的长整数,如果没有执行有效的转换,则返回零。
    • 案例
    #include <stdio.h>
    int main(){
       int val;
       char str[20];
       
       strcpy(str, "98993489");
       val = atoi(str);
       printf("字符串值 = %s, 整型值 = %d
    ", str, val);
    
       strcpy(str, "runoob.com");
       val = atoi(str);
       printf("字符串值 = %s, 整型值 = %d
    ", str, val);
    
       return(0);
    }
    
    • 编译并运行上面的程序,这将产生以下结果:
    字符串值 = 98993489, 整型值 = 98993489
    字符串值 = runoob.com, 整型值 = 0
    
    欢迎查阅
  • 相关阅读:
    Solon 开发进阶,二、体外扩展机制
    Solon Web 开发,二、开发知识准备
    Solon Web 开发,四、请求上下文
    CODING 项目协同 2.0 —— 让协作有条不紊
    (三)React组件的三大特性 State
    (四)React组件的三大特性 Props
    (五)React的三大特性 refs
    (二)React的组件的创建 ,js类的基础复习
    (一)React系列文章:虚拟DOM的创建与解释,注意的相关规则
    [源码解析] PyTorch 分布式(16) 使用异步执行实现批处理 RPC
  • 原文地址:https://www.cnblogs.com/gh110/p/12158184.html
Copyright © 2011-2022 走看看