| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 453 人关注过本帖
标题:这个程序实现什么功能?小弟先谢谢了!
只看楼主 加入收藏
hnhbzy0127
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2009-7-31
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
这个程序实现什么功能?小弟先谢谢了!
#include<fstream>
#include<iostream>
#include<set>
using namespace std;
//-------------------------------------
int main(){
  ifstream cin("1.txt");
  int num=0, f12=479001600;  // 12!
  multiset<int> s;
  for(int n; cin>>n; )
    if(f12%n==0){
      multiset<int>::iterator it=s.find(f12/n);
      if(it!=s.end()){
        num++;
        s.erase(it);
      }else s.insert(n);
    }
  cout<<num<<"\n";
  return 0;
}//====================================
搜索更多相关主题的帖子: include 
2009-08-06 15:25
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:20 
回复 楼主 hnhbzy0127

 for(int n; cin>>n; )
    if(f12%n==0){
      multiset<int>::iterator it=s.find(f12/n);
      if(it!=s.end()){
        num++;
        s.erase(it);
      }else s.insert(n);
    }
 
把关键的这几步翻译一下就是:
 
for (一直输入数字到n)
    if (如果f12是你输入数的倍数)
    {
        就到s是找找有没有 f12/n 这个数。
         
        if (有)
        {
            记数加1。
            把这个找到的数删掉。
        }
        else // 没有的话
            就把刚输入的 n 插入s。
    }
    // 如果f12不是n的倍数,那就什么都不干,准备下一次循环。
 
 
暂时还没看出来这算法统计出来的num有什么用。
2009-08-06 17:14
hnhbzy0127
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2009-7-31
收藏
得分:0 
if(it!=s.end()  
 
 这句的意思我理解是 if(这个数不是s最后一个)

为什么翻译成如果有的话?
2009-08-06 19:19
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
回复 3楼 hnhbzy0127

这个是find函数的规定。因为end是一个不存在的位置,逻辑上是s最后一个元素的后面。find返回end的意思是没有找到。加个 ! 就是“如果有”的意思
2009-08-06 23:54
hnhbzy0127
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2009-7-31
收藏
得分:0 
谢谢啦
2009-08-07 14:38
金多虾
Rank: 2
等 级:论坛游民
帖 子:153
专家分:99
注 册:2009-6-9
收藏
得分:0 
2009-08-09 10:06
快速回复:这个程序实现什么功能?小弟先谢谢了!
数据加载中...
 
   



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

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