| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 48920 人关注过本帖, 10 人收藏
标题:[全民编程]76道高难度C++练习题.含NOI竞赛题.欢迎挑战
只看楼主 加入收藏
philip
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-10-12
收藏
得分:0 
回复 25# aipb2007 的帖子
16题,最少的比较次数应该是3次。
首先将8枚硬币,每边4枚放在天平上,将(重)轻的那一边取出,再分成每边两枚放在天平上。将(重)轻的那一边取出,再分成每边1枚放在天平上。(重)轻的那一枚就是了。
2008-10-12 16:41
hustini
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2008-10-16
收藏
得分:0 
到哪里下载呀?
2008-10-18 16:56
cppzh
Rank: 1
等 级:新手上路
帖 子:17
专家分:7
注 册:2010-8-23
收藏
得分:0 
14.递归算法,哪位大侠改下数组声明,试试能否编译
Void main()
{Int n=0;
char *a=null;
cin>>n;
A=new char[n*2];
Void print(char a[],int n)
Void init(char a[],int n)
Void reverse(char a[],int n)
Init(a,n);
Reverse(a,n,n);
}
Void init(a,n)
{Char a[n*2];
For(i=0;i<n;i++) a[i]=’O’;
For(i=-n;i<0;i++) a[i]=’*’;}

Void print(a,n)
{Char a[n*2];
For(i=-n;i<n;i++) cout<<a[i];}

Void reverse(a,n,m)
{Char a[n*2],b[n*2];int i,n,n2
If(n<0) return;
elseif(n=1) print(a,m);
else
reverse(a,n--);
for(i=-n;i<n;)
{char t=a[i];a[i]=a[++i];a[i++]=t;
Print(a,m);}
}


宁静致远
2010-09-06 14:26
cppzh
Rank: 1
等 级:新手上路
帖 子:17
专家分:7
注 册:2010-8-23
收藏
得分:0 
哪位有题发一下吧。zhhhychen@

宁静致远
2010-09-06 14:33
amwjgigql
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-9-7
收藏
得分:0 
第16题,最少三次,最多四次,
我有二种想法:8枚硬币分为四组,ab,cd,ef,jh.
第一次,左ab跟右cd,有三种情况,平衡,左重,左轻。
       如果平衡 第二次,左ab,右ef,同样有三种情况。
       如果平衡 第三次,左ab,左 jh.这时只有二种情况了,左重或左轻
       第四次,如果第三次是左重,说明假币较真币轻,左放j,右放上h.轻的那个是假币。
       第四次,如果第三次是左轻,说明假币较真币重,左放j,右放h,重的那个是假币。
如果第一次是平衡
     第二次,左放ab,右放ef,会有三种情况同上如果平衡上面已经讲了,。
    如果左重,说明ef里有假币且较真币轻。
     第三次,左放e,右放f,轻的为假币。
     第二次如果是左轻,说明ef里有假币且较真币重。
     第三次左放e,右放f,重的为假币。
     
如果第一次是左重(说明efjh是真币)
    说明第一次的二组里有一组里有假币。(且如果假币在ab内,说明假币较重,反之较轻。)
   第二次,左放ef,右放ab,只会有二种情况,平衡,左轻(因为第一次是左重也就是ab重所以ef不可能比ab重)。
    如果平衡,说明假币在cd内且较轻。
  第三次,左放c,右放d,轻的为假币。
  第二次如果左轻,说明假币在ab内
   第三次,左放a,右放b轻的为假币,
如果第一次是左轻(说明efjh是真币)。
   说明第一次的二组内有一组假币。(且如果假币在ab内,说明假币较轻,反之较重。)
   第二次,左放ef,右放ab只会有二种情况,平衡,左重。
   如果平衡,说明 cd内有假币且较重。
   第三次,左放c,右放d重的为假。
   第二次若左重,说明ab内有假币,且较轻
   第三次左放a,右放b,轻的为假。
2010-09-09 00:33
jerry278
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-11-21
收藏
得分:0 
szdfd
2010-11-21 20:59
abcdef123ab
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-1-23
收藏
得分:0 
回复 126楼 huozoo
#include "stdafx.h"
#include<iostream>
using namespace std;

int main(){
    const int n=10;
    char t,a[n];

    for( int i = 0; i < n/2; i++ )
        a[i] = '*';
    for( int i = n/2; i < n; i++ )
        a[i] = '0';

    cout << "原始数据:" << endl;
    for( int i = 0; i < n;i++ )
        cout << a[i] << " ";
    cout << endl;

    cout << "变换过程:" << endl;
    for( int i = n/2; i < n-1; i++ ){
        //cout << i << endl;
        for( int j = i; j > 0 && a[j-1] != '0'; j--){
            t = a[j];
            a[j] = a[j+1];
            a[j+1] = t;
            for( int k = 0; k < n; k++ )
                cout << a[k] << " ";
            cout << endl;
        }
    }

    system("pause");
    return 0;
}
2013-01-24 19:58
jacobwj
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-1-28
收藏
得分:0 
研究研究
2013-01-28 21:17
快速回复:[全民编程]76道高难度C++练习题.含NOI竞赛题.欢迎挑战
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019615 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved