精华内容
下载资源
问答
  • C语言求:歌德巴赫猜想

    千次阅读 2020-07-19 19:33:59
    哥德巴赫猜想:任意大于2的偶数可以分解为两个素数之和,通过C语言来验证该猜想。 目标:输入的偶数num,将分解为两个素数的所有结果打印出来。 #include<stdio.h> int main(){ /*1.歌德巴赫猜想*/ printf(...

    哥德巴赫猜想:任意大于2的偶数可以分解为两个素数之和,通过C语言来验证该猜想。

    目标:输入的偶数num,将分解为两个素数的所有结果打印出来。

    #include<stdio.h>
    int main(){
    	/*1.歌德巴赫猜想*/
    	printf("请输入一个大于2的整数:");
    	int num;
    	scanf("%d",&num);
    	for(int i=2;i<num/2;i++){  /* num/2为可能达到的最大值*/ 
    		int j=num-i;
    		bool flag=true;       /*判断没一次循环的数是否为达到希望的效果*/ 
    		for(int k=2;k<i;k++){ /*判断第一数i是否是素数*/ 
    			if(i%k==0){
    				flag=false;
    				break;
    			}
    		}
    		if(flag==false){      /*如果第一个判断出不是素数,则执行下一个循环*/
    			continue;
    		}else{
    			for(int k=2;k<j;k++){  /*判断第二数j是否是素数*/ 
    				if(j%k==0){
    					flag=false;
    					break;
    				}
    			}
    		}
    		if(flag==true){
    			printf("%d分解之后的数是%d和%d\n",num,i,j);
    		}	
    	}
    	return 0;
    }
    
    展开全文
  • 任意给定一个正整数N,一个最小的正整数M(M>1),使得N*M的十进制表示形式里只含有10。 作者经过对问题的分析,把计算两个数相乘结果转变成了对余数信息的处理。通过算法思想的转换简化了问题的处理过程,并在...

    《编程之美》2.8 找符合条件的整数。
    任意给定一个正整数N,求一个最小的正整数M(M>1),使得N*M的十进制表示形式里只含有1和0。

    作者经过对问题的分析,把计算两个数相乘结果转变成了对余数信息的处理。通过算法思想的转换简化了问题的处理过程,并在处理余数的过程中,把中间过程的余数信息保存下来,这也避免了大量的浪费效率的模运算。同时,由于所要求的结果可能很大,我们采用bit位图的方式,用在相应bit位为1标志十进制为有值,可以扩展程序可以处理的范围。

    #include <stdio.h>
    
    int iRes[100];		/* bitmap */
    
    int OneAndZeroNum(int N)
    {
    	int i, X;		/* X记录目前遍历的十进制位数 */
    	int num;		/* num = 10^X */
    	for(i = 0; i < N; i++)
    		iRes[i] = 0;
    	for(X = 0, num = 1; ; X++, num *= 10)
    	{
    		int tempRes = num % N;
    		if(tempRes != 0)	/* 如果10^X不能整除N */
    		{
    			if(iRes[tempRes] == 0)
    				iRes[tempRes] = 1 << X;	/* 记录为tempRes时,十进制数的位数 */
    			for(i = 1; i < N; i++)		/* 更新余数对应的十进制数 */
    				if(iRes[i] != 0 && iRes[(i+tempRes)%N] == 0 && \
    						((iRes[i] & (1 << X)) == 0)) /* 避免错误重复更新 */
    					iRes[(i+tempRes)%N] |= (iRes[i] | (1 << X));
    			if(iRes[0] != 0)
    				return iRes[0];
    		}
    		else
    		{
    			iRes[0] = 0;
    			iRes[0] |= 1 << X;
    			return iRes[0];
    		}
    	}
    	return 0;
    }
    
    int main()
    {
    	int N;
    	int iBitMapNum, iFactor;
    	int Num;
    	while(1)
    	{
    		scanf("%d", &N);
    		iBitMapNum = OneAndZeroNum(N);
    		iFactor = 1;
    		Num = 0;
    		while(iBitMapNum)
    		{
    			Num += (iBitMapNum & 0x01) * iFactor;
    			iFactor *= 10;
    			iBitMapNum >>= 1;
    		}
    		printf("%d\n", Num);
    	}
    	return 0;
    }
    展开全文
  • C语言

    2021-03-18 20:19:35
    C语言 求任意大的两整数之差(数组存储) 【设计思想】将两个大整数分别用两个字符型数组a b来表示,每个数字以其字符形式存放在数组中,进行求差之前,先判断两数的大小,保证被减数的值大于减数的值,然后对两...

    C语言 求任意大的两整数之差(数组存储)

    【设计思想】将两个大整数分别用两个字符型数组a和 b来表示,每个数字以其字符形式存放在数组中,进行求差之前,先判断两数的大小,保证被减数的值大于减数的值,然后对两数按照从右向左的顺序进行数字字符的相减,求得其差值放在字符数组c中。

    话不多说,见代码:

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #define SIZE 100
    //编写-程序用于计算任意大的两整数之差(提示:大整数用字符串来表示)
    void SubNumberStr(char *a,int len1,char *b,int len2,char *c);//主要功能函数
    char SubChar(char ch1,char ch2);//两数相减,标记借位
    void LeftTrim(char *str,char sign);//去掉字符串左边的空格和0
    int tag=0;
    
    int main()
    {
        char a[SIZE]={0},b[SIZE]={0},sum[SIZE+1];
        int len1,len2;
        gets(a);
        gets(b);
        len1=strlen(a),len2=strlen(b);
        //计算
        SubNumberStr(a,len1,b,len2,sum);
        printf("%s\n",sum);
    }
    void LeftTrim(char *str,char sign){
        int i;
        for(i=0;str[i]==' ' || str[i]=='0';i++);
        if(str[i]=='\0')  i--;
        if(sign=='-')  str[--i]=sign;
        strcpy(str,str+i);
    }
    void SubNumberStr(char *a,int len1,char *b,int len2,char *sum){
    
        char t[SIZE],sign=' ';
        int i,j,k;
        if((len1<len2) || (len1==len2)&&(strcmp(a,b)<0))
        {
            sign='-';
            strcpy(t,a);
            strcpy(a,b);
            strcpy(b,t);
        }
        memset(sum,' ',SIZE);
        i=len1-1;
        j=len2-1;
        k=SIZE;
        while(i>=0 && j>=0){
            sum[k--]=SubChar(a[i--],b[j--]);
        }
        while(i>=0){
            sum[k--]=SubChar(a[i--],'0');
        }
        sum[SIZE+1]='\0';
        LeftTrim(sum,sign);
    }
    char SubChar(char ch1,char ch2){
        char ch;
        ch=ch1-ch2-tag;
        if(ch>=0){
            tag=0;
            return ch+0x30;
        }
        else{
            tag=1;
            return ch+10+0x30;
        }
    }
    
    

    运行结果:
    在这里插入图片描述

    展开全文
  • 220经典C语言源码

    千次下载 热门讨论 2013-08-16 23:35:01
    003 求整数之积 004 比较实数大小 005 字符的输出 006 显示变量所占字节数 007 自增/自减运算 008 数列求和 009 乘法口诀表 010 猜数字游戏 011 模拟ATM(自动柜员机)界面 012 用一维数组统计学生成绩 ...
  • 内容:此篇为C语言基础内容,本篇程序主要实现的功能是输入任意两个整数,让计算机两数之和。 1.C程序的输入输出 先看下面示例代码再看以下讲解: 举例 代码如下(示例): #include <stdio.h> #include <...


    前言


    内容:此篇为C语言基础内容,本篇程序主要实现的功能是输入任意两个整数,让计算机求两数之和。

    1.C程序的输入输出

    先看下面示例代码再看以下讲解:
    举例
    代码如下(示例):

    #include <stdio.h>
    #include <stdlib.h>
    int main()
    {
    	//0.变量声明
        int num1;
        int num2;
        int num3; //int a,b,c;
        //1.提示用户输入第一个数;
        printf("please input first number:\n");
        //2.获取用户输入;
        scanf("%d",&num1);
        //3.提示用户输入第二个数;
        printf("please input second number:\n");
        //4.获取用户输入;
        scanf("%d",&num2);
        //5.计算
        num3=num1+num2;
        //6.输出计算结果
        printf("%d+%d=%d\n",num1,num2,num3);
        
    	system("pause");
    	return 0;
    }
    

    1.scanf
    是输入函数的名字:
    有了这个函数,运行完程序后,出现提示框你可以写想输入的内容,假如想输入一个数字就用
    scanf("%d",&num1);

    2.printf
    是输出函数的名字:
    假如想要输出这些数字的运算结果,就用
    printf("%d+%d=%d\n",num1,num2,num3);

    示例代码中其他的printf都是为了输出双引号里的内容到最后的运行结果框中来提示人来进行下一步操作

    此图是上述代码运行的第一个画面,输入任意一个整数按下回车键;

    在这里插入图片描述
    按下回车键后命令窗口提示你输入第二个数,你输入后按回车键,如果没有scanf命令,这个运行结果将停留此画面不能输入数字,按任意键会使命令窗口退出。
    在这里插入图片描述
    当输入完两个数,运行结果就会自动算出,如果想算减法,将

     num3=num1+num2;
    printf("%d+%d=%d\n",num1,num2,num3);
    

    变成

     num3=num1-num2;
    printf("%d-%d=%d\n",num1,num2,num3);
    

    即可。

    3.头文件

    #include <stdio.h>
    #include <stdlib.h>
    

    这两行代码都是头文件。

    include是包含的意思,预处理器看到#include就会把<>尖括号中的那个文件找到,然后用该文件的内容替换掉#include <> 这一行。

    stdio.h就是standard input output.header,也 就是“标准输入输出头文件”,这个文件的内容就是一些基本输入输出函数的声明,比如scanf()printf(),你包含了stdio.h,就相当于声明了这些函数,所以你才可以在自己的程序中使用它们。

    同理stdlib.h就是standard library.header,没有他system()函数无法输入。

    4.int main(){}是程序的入口,计算机只有找到这个入口才会继续往下执行,没有他计算机就不认识之后写的所有代码,int main()通常与return 0;配套使用。

    如果用

    void main()
    {
    }
    

    则不需要返回值

    return 0;
    
    展开全文
  • 220个C语言经典代码

    2016-07-06 16:10:20
    003 求整数之积 004 比较实数大小 005 字符的输出 006 显示变量所占字节数 007 自增/自减运算 008 数列求和 009 乘法口诀表 010 猜数字游戏 011 模拟ATM(自动柜员机)界面 012 用一维数组统计学生成绩 ...
  • 现在蒟蒻们想知道,蒟蒻全部能成功逃亡的路线的长度之和的最小值。(虽然,这对神通广大的 PB 根本不是一回事……) 输入 第一行三个整数 n, m, k,相邻两数用一个空格分开。 接下来 k 行,第 i 行两个正整数 ...
  • C语言程序设计实例教程 C语言程序设计实例教程第7章 函数7.2 函数的调用本节要点函数的几种调用方式函数说明的方法 函数的几种参数情况实例25函数的调用求两个整数之和实例任务从键盘上任意输入两个整数其和运行...
  • 回数猜想: 任取一个数,再把它倒过来,并把这两个数相加,然后把这个和数再倒过来,与原和数相加,重复此过程,一定能获得一个回数。 例: 68 倒过来是 86, 68+86= 154,154+541= 605,605+506=1111 (回数) 编程...
  • 你必须知道的495个C语言问题

    千次下载 热门讨论 2015-05-08 11:09:25
    3.15 我要检查一个数是不是在另外两个数之间,为什么if(abc)不行? 3.16 为什么如下的代码不对?inta=1000,b=1000;longintc=a*b; 3.17 为什么下面的代码总是给出0?doubledegC,degF;degC=5.0/9*(degF-32); ...
  • 循环结构习题:输入两个整数,输出它们的最大公约数 66%(4379/6621) 36% 2020-4-23 1008 顺序结构习题:三个数的平均值 63%(4500/7162) 39% 2020-4-23 1009 顺序结构习题:两点之间的距离 61%(4135/6812) 41% ...
  • 003 求整数之积 004 比较实数大小 005 字符的输出 006 显示变量所占字节数 007 自增/自减运算 008 数列求和 009 乘法口诀表 010 猜数字游戏 011 模拟ATM(自动柜员机)界面 012 用一维数组统计学生成绩 013 用二维...
  • c语言经典案例

    2014-10-30 08:06:57
    实例122 求任意数的n次幂 161 实例123 固定格式输出当前时间 163 实例124 设计函数计算学生平均身高 164 实例125 求数组元素中的最小值 165 实例126 打印1~5的阶乘 166 实例127 求最大公约数最小公倍数 167 实例...
  • 《你必须知道的495个C语言问题》

    热门讨论 2010-03-20 16:41:18
    3.15 我要检查一个数是不是在另外两个数之间,为什么if(a b c)不行? 40 3.16 为什么如下的代码不对?int a=1000, b=1000; long int c=a * b; 40 3.17 为什么下面的代码总是给出0?double degC, degF; degC= ...
  • 003 求整数之积 004 比较实数大小 005 字符的输出 006 显示变量所占字节数 007 自增/自减运算 008 数列求和 009 乘法口诀表 010 猜数字游戏 011 模拟ATM(自动柜员机)界面 012 用一维数组统计学生成绩 ...
  • 3.15 我要检查一个数是不是在另外两个数之间,为什么if(a b c)不行? 40 3.16 为什么如下的代码不对?int a=1000, b=1000; long int c=a * b; 40 3.17 为什么下面的代码总是给出0?double degC, degF; degC= ...
  •  实例3 求整数之积   实例4 比较实数大小   实例5 字符的输出   实例6 显示变量所占字节数   实例7 自增/自减运算   实例8 数列求和   实例9 乘法口诀表   实例10 猜数字游戏   ...
  • 1.编写一个函数primeNum(int num),它的功能是判别一个数是否为素数。如果num是素数,返回该数;...编写两个函数,一个函数gcd()的功能是求两个整数的最大公约数,另一个函数mul()的功能是求两个整数的最小公倍数。
  • 003 求整数之积 004 比较实数大小 005 字符的输出 006 显示变量所占字节数 007 自增/自减运算 008 数列求和 009 乘法口诀表 010 猜数字游戏 011 模拟ATM(自动柜员机)界面 012 用一维数组统计学生成绩 ...
  • C语言常用算法

    2012-03-28 10:48:37
    003 求整数之积 004 比较实数大小 005 字符的输出 006 显示变量所占字节数 007 自增/自减运算 008 数列求和 009 乘法口诀表 010 猜数字游戏 011 模拟ATM(自动柜员机)界面 012 用一维数组统计学生成绩 ...
  • 003 求整数之积 004 比较实数大小 005 字符的输出 006 显示变量所占字节数 007 自增/自减运算 008 数列求和 009 乘法口诀表 010 猜数字游戏 011 模拟ATM(自动柜员机)界面 012 用一维数组统计学生成绩 ...
  • C语言学习笔记(3)

    2020-10-30 15:43:34
    笔记内容: 1.找素数; 2.找闰年; 3.交换两个数; 4.打印任意两个数的乘法口诀表; 5.输出整数的每一位(递归实现);...10.输入一个整数,输出组成数字之和(递归实现); 11.n的k次方(递归实现);
  • C语言学习实例220例

    2015-06-16 23:47:59
    003 求整数之积 004 比较实数大小 005 字符的输出 006 显示变量所占字节数 007 自增/自减运算 008 数列求和 009 乘法口诀表 010 猜数字游戏 011 模拟ATM(自动柜员机)界面 012 用一维数组统计学生成绩 013 用二维...
  • C语言实例解析精粹

    2014-03-14 21:57:05
    003 求整数之积 004 比较实数大小 005 字符的输出 006 显示变量所占字节数 007 自增/自减运算 008 数列求和 009 乘法口诀表 010 猜数字游戏 011 模拟ATM(自动柜员机)界面 012 用一维数组统计学生成绩 ...
  • C语言实例解析精粹 PDF

    热门讨论 2010-08-17 00:20:25
    实例20 数组前n元素之和 实例21 求解钢材切割的最佳订单 实例22 通过指针比较整数大小 实例23 指向数组的指针 实例24 寻找指定元素的指针 实例25 寻找相同元素的指针 实例26 阿拉伯数字转换为罗马数字 实例27 ...
  • 本行的意义是a+b之和,(*pa就是a,*pb就是b)。 本行是a*b之积。 输出结果。 输出结果。 ...... 指针变量还可以与0比较。设p为指针变量,则p==0表明p是空指针,它不指向任何变量;p!=0表示p不是空指针。空指针是...

空空如也

空空如也

1 2 3 4
收藏数 61
精华内容 24
关键字:

c语言求任意两个整数之和

c语言 订阅