首页 > Nested Mappings

Nested Mappings



/*hanzhiguang coded at 2009.07.30 1:20*/

// nesting_map.cpp : Defines the entry point for the console application.

//

/*-------------------------------------------------------------------------

给定自然数n,找出所有不同的有序对i和j,其中 1<=j<=i<=n,使得i+j是素数。例如:

假定n是6,满足条件的序对就是:



i    2 3 4 4 5 6 6

j    1 2 1 3 2 1 5

-------------------------

i+j  3 5 5 7 7 7 11



完成这一计算的一种很自然的组织方式:首先生成出所有小于等于n的正自然数的有序对,而后通过过滤,得到哪些和

为素数的有序对,最后对每个通过了过滤的序对(i,j),产生出一个3元组(i,j, i+j)

---------------------------------------------------------------------------*/

#include "stdafx.h"

#include "prime.h"



#define MAX_INDEX 256

struct LIST

{

    int low;

    int high;

    int sum;

    bool is_prime_sum;

};



struct LIST g_list[MAX_INDEX] = {0};

int  g_index = 0;

/*-------------------------------------------------------------------------

生成有序对序列的一种方式:对于每个整数i<=n,枚举出所有的整数j
生成序对(i,j).

---------------------------------------------------------------------------*/

int enumrate_interval(int nlow, int nhigh)

{

    if (nlow >= nhigh)

    {

        return 0;

    }

    else

    {

        g_list[g_index].low = nlow;

        g_list[g_index].high= nhigh;

        g_index++;



        enumrate_interval(nlow+1, nhigh);

    }



    return 1;

}



int enumrate_list(int n)

{

    for (int i=1; i<=n; i++)

    {

        enumrate_interval(1, i);

    }



    return 0;

}



int filter_sum_prime()

{

    for (int i=0; i
    {

        if ( is_prime(g_list[i].low + g_list[i].high) )

        {

            g_list[i].is_prime_sum = TRUE;

            g_list[i].sum = g_list[i].low + g_list[i].high;

        }

        else

        {

            g_list[i].is_prime_sum =FALSE;

        }

    }



    return 0;

}



void prinf_list()

{

    for (int i=0; i
    {

        if ( g_list[i].is_prime_sum )

        {

            printf("%d_%d_%d/n", g_list[i].low, g_list[i].high, g_list[i].sum);

        }

    }



}

int _tmain(int argc, _TCHAR* argv[])

{

    enumrate_list(6);

    filter_sum_prime();

    prinf_list();



    printf("/n");

    return 0;

}

更多相关:

  • list_for_each_safeBidirect-list list_for_each_safe().https://biscuitos.github.io/blog/LIST_list_for_each_safe/...

  • 已知k个已排序链表头节点指针,将这k个链表合并,合并后仍为有序的 ,返回合并后的头节点 如下三个链表: 合并后的结果如下: 方法一(STL sort算法进行排序): 先将输入的排序链表插入一个迭代器中,vector数组中国呢直接对数组中的链表节点进行按值排序即可 实现算法如下,最终实现源码见文末: bool cmp(Dat...

  • 本题要求实现一个函数,找到并返回链式表的第K个元素。 函数接口定义: ElementType FindKth( List L, int K ); 其中List结构定义如下: typedef struct LNode *PtrToLNode; struct LNode {ElementType Data;PtrToLNode Ne...

  • 一、前述 企业中linux搭建ftp服务器还是很实用的,所以本文针对centoos7和centoos6搭建服务器教程做个总结。 二、具体 1、显示如下图则表示已安装 vsftp软件。如果未显示则需要安装vsftpd软件。 如果没有则通过yarm源进行安装 yum install -y vsftpd 2、安装完成之后 进入到ftp的根...

  •         Apache POI是一个开源的利用Java读写Excel,WORD等微软OLE2组件文档的项目。        我的需求是对Excel的数据进行导入或将数据以Excel的形式导出。先上简单的测试代码:package com.xing.studyTest.poi;import java.io.FileInputSt...

  • 要取得[a,b)的随机整数,使用(rand() % (b-a))+ a; 要取得[a,b]的随机整数,使用(rand() % (b-a+1))+ a; 要取得(a,b]的随机整数,使用(rand() % (b-a))+ a + 1; 通用公式:a + rand() % n;其中的a是起始值,n是整数的范围。 要取得a到b之间的...

  • 利用本征图像分解(Intrinsic Image Decomposition)算法,将图像分解为shading(illumination) image 和 reflectance(albedo) image,计算图像的reflectance image。 Reflectance Image 是指在变化的光照条件下能够维持不变的图像部分...

  • 题目:面试题39. 数组中出现次数超过一半的数字 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 输入: [1, 2, 3, 2, 2, 2, 5, 4, 2] 输出: 2 限制: 1 <= 数组长度 <= 50000 解题: cl...

  • 题目:二叉搜索树的后序遍历序列 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。 参考以下这颗二叉搜索树:      5     /    2   6   /  1   3示例 1: 输入: [1,6,3,2,5] 输出...

  • C语言 char * removeOuterParentheses(char * S){int len = strlen(S);int j = 0;int sum = 0;for(int i = 0; i < len; i++){if (S[i] == '('){sum += 1;}else if (S[i] == ')'){sum...

  • Codeforces Round #563 (Div. 2)/CF1174 CF1174A Ehab Fails to Be Thanos 其实就是要(sumlimits_{i=1}^n a_i)与(sumlimits_{n+1}^{2n}a_i)差值最大,排一下序就好了 CF1174B Ehab Is an Odd...

  • 浮点型乘整型和整型乘浮点型结果不同,不知为什么。 1 double sum = 0.0; 2 for (int i = 0; i < n; i++) 3 { 4 cin >> a[i]; 5 sum += a[i] * (i + 1) * (n - i); 6 } 7 printf("%.2f", sum); 提...