最小正整数

有一个整数,除5余3、除3余2、除2余1,            求满足条件的最小正整数。

那么while(1)其中1代表一个常量表达式,他永远不会等于0。所以,循环会一直执行下去。除非你设置break等类似的跳出循环语句循环   才会中止

#include <iostream>
using namespace std;
int main( )
{     int x=1;
      while(1)
      {

if(x%5==3 && x%3==2 && x%2==1 )
                                                                         {    x++;    break;}

}
       cout<<x<<endl;  
       system("pause");

return 1;
}

#include <iostream>
using namespace std;
int main( )
{     int x=1;
      while(1)
      {if(x%5==3 && x%3==2 && x%2==1 )
          { break;}
    x++;
    }
       cout<<x<<endl;  
       system("pause"); return 1;
}

最小正整数(续)    加速
#include <iostream>
using namespace std;
int main( )
{

int x=3;
      while(1)
       { 
            if(x%3==2 && x%2==1)               break;
                                    x+=5;
        }
       cout<<x<<endl;
       system("pause");

return 0;
}

时间: 2024-12-29 10:55:37

最小正整数的相关文章

[算法]数组中未出现的最小正整数

题目: 给定一个无序整型数组arr,找到数组中未出现的最小正整数. 例如: arr=[-1,2,3,4].返回1. arr=[1,2,3,4].返回5. 要求时间复杂度为O(N),空间复杂度为O(1). 解答: 在遍历arr之前先生成两个变量.变量l表示遍历到目前为止,数组arr已经包含的正整数范围是[1,l],所以在没有开始之前l=0,表示arr没有包含任何正整数.变量r表示遍历到目前为止,在后续出现最优状况的情况下,arr可能包含的正整数范围是[1,r],所以在没有开始之前,令r=N,r同时

数组中未出现的最小正整数

给定一个未排序的整数数组,让我们求得未出现的最小正整数(要求时间o(n)空间复杂度o(1)) 如果一般的方法,应该是先排序,然后遍历的时候直接找到正整数,但是排序最小也要o(n*log(n))的复杂度.这里运用了夹逼的办法(代码如下) 1 void swap(int &a,int &b) 2 { 3 int temp = a; 4 a = b; 5 b =temp; 6 7 8 } 9 int Number(int *arr,int size) 10 { 11 int r = size;

找出数组中从未出现的最小正整数java实现

1 /** 2 * 找出未出现的最小正整数 3 * @param A 4 * @param n 5 * @date 2016-10-7 6 * @author shaobn 7 */ 8 public static int findArrayMex(int[] a,int n){ 9 int count = n; 10 int temp = 0; 11 int dir = 1; 12 int num = 0; 13 for(int i = 0;i<count-1;i++){ 14 if(a[i]

求最小正整数x,A^x=1(mod M)求阶模板

整数的阶:设a和n是互素的正整数,使得a^x=1(mod n)成立的最小的正整数x称为a模n的阶 //求阶模板:A^x=1(mod M),调用GetJie(A,M) //输入:10^10>A,M>1 //输出:无解返回-1,有解返回最小正整数x //复杂度:O(M^(0.5)) long long gcd(long long a,long long b) { if(b==0) return a; return gcd(b,a%b); } //欧拉函数:复杂度O(n^(0.5)),返回[1,n-

算法总结之 数组中未出现的最小正整数

给定一个无序整型数组arr,找到数组中未出现的最小正整数 解题思路非常好,需要好好学习一下,很逻辑 如果arr长度为N, 最优解可以做到时间复杂度O(N) 额外空间复杂度O(1) 1.遍历arr之前生成两个变量, l  r   初始值 l=0   r=N 2.从左到右遍历arr,arr[l] 3.如果arr[l]=l+1 没有遍历arr[l]之前,arr已经包含的正整数范围是[1,l],此时出现了arr[l]=l+1的情况,所以arr包含的正整数范围可以扩展到[1,l+1]  即令 l++ 4.

查找数组中未出现的最小正整数

请设计一个高效算法,查找数组中未出现的最小正整数. 给定一个整数数组A和数组的大小n,请返回数组中未出现的最小正整数.保证数组大小小于等于500. 测试样例: [-1,2,3,4],4 返回:1 class ArrayMex { public: int findArrayMex(vector<int> A, int n) { // write code here // write code here sort(A.begin(),A.end()); //排序 if(A[0] > 1) r

脑洞题目 - 改自从一组无序数组中找不存在的最小正整数

无聊想的题目,但题目创意改自从一组无序数组中找不存在的最小正整数.并不难,但也有陷阱,比考虑0和负数... /** * 从无序数组中找不存在的最小正整数 * 我的要求:比如:{3,4,6,9,20}中 最小的不存在的正整数为2 */ #include <stdio.h> int main() { int arr[] = {-5, -10, 42, 29, 18, -3, 8, 20, -1}; int i, j, temp; for(i = 1; i < sizeof(arr)/size

数组中未出现的最小正整数(算法)

1 #include <cstdio> 2 #include <algorithm> 3 using namespace std; 4 int s[100]; 5 int main() 6 { 7 int l,r; 8 int n; 9 while(scanf("%d",&n),n) 10 { 11 for(int i=0;i<n;i++) 12 scanf("%d",s+i); 13 l=0; 14 r=n; 15 while

【趣味算法题】找到缺失的最小正整数

[题目描述] 有一个随机序列的数组,找到其中缺失的最小正整数 举例如下,在[1,  2,  0] 中,该最小正整数应为3 在[3,  4,  -1,  1]中,该最小正整数应该为2 [解题思路] 如果允许开辟任意大小的空间,易得用桶的思想可以解决这题 简单的说,开辟一个数组,从1扫过来如果不存在那么break输出即可 如果对空间的要求是O(1) ,利用桶排序接下来有一个非常漂亮的解决方法: 我们可以把每个数字放在其该放的地方.什么意思呢? 比如 A[0] = 1, A[1] = 2, A[2]