windows配置gvim高效率编程(cc++)带自动补全代码

对vim的配置足以处理一般的比赛获其他编程项目要求,如自动缩进,自动补全等等。先上几张截图,看看效果: 
界面

界面

可以看见vim简洁高效的界面和不错的缩进功能。

debug功能 
debug


一、安装gvim 
下载资源并安装

百度云下载网址http://pan.baidu.com/share/link?shareid=365469&uk=2970460274

二、配置c++环境 
1,首先下载安装MinGW,下载地址在http://sourceforge.net/projects/mingw/。这个是边下载边安装的,下载完成即安装完成。我的安装目录是F:\MinGW。 
2,设置环境变量。右击我的电脑,点属性->高级->环境变量。然后: 
1、在PATH里加入F:\MinGW\bin,记得,如果里面还有其他的变量,记得要加个分号啊,分号得在英文输入模式下输入的。 
2、新建LIBRARY_PATH变量,如果有的话,在值中加入F:\MinGW\lib,这是标准库的位置。 
3、新建C_INCLUDEDE_PATH变量,值设为F:\MinGW\include。 
4、新建CPLUS_INCLUDE_PATH变量,值为F:\MinGW\include;F:\MinGW\include\c++\4.5.0;F:\MinGW\include\c++\4.5.0\backward;F:\MinGW\include\c++\4.5.0\mingw32 
具体路径请根据你的MinGW选择。 
3、在你的_vimrc文件中配置编译调试选项。 
“定义CompileRun函数,用来调用进行编译和运行

func CompileRun()
exec “w”
“C程序
if &filetype == ‘c’
exec “!gcc -Wall -enable-auto-import % -g -o %<.exe”
“c++程序
elseif &filetype == ‘cpp’
exec “!g++ -Wall -enable-auto-import  % -g -o %<.exe”
“Java程序
elseif &filetype == ‘java’
exec “!javac %”
endif
endfunc
“结束定义CompileRun
“定义Run函数
func Run()
if &filetype == ‘c’ || &filetype == ‘cpp’
exec “!%<.exe”
elseif &filetype == ‘java’
exec “!java %<”
endif
endfunc
“定义Debug函数,用来调试程序
func Debug()
exec “w”
“C程序
if &filetype == ‘c’
exec “!gcc % -g -o %<.exe”
exec “!gdb %<.exe”
elseif &filetype == ‘cpp’
exec “!g++ % -g -o %<.exe”
exec “!gdb %<.exe”
“Java程序
elseif &filetype == ‘java’
exec “!javac %”
exec “!jdb %<”
endif
endfunc
“结束定义Debug
“设置程序的运行和调试的快捷键F5和Ctrl-F5
map <F5> :call CompileRun()<CR>
map <F6> :call Run()<CR>
map <C-F5> :call Debug()<CR>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43

可能遇到的问题: 
编译的时候可能会出现: 
Info: resolving std::cout by linking to __imp___ZSt4cout (auto-import) 
c:/mingw/bin/../lib/gcc/mingw32/4.5.0/../../../../mingw32/bin/ld.exe: warning: a 
uto-importing has been activated without –enable-auto-import specified on the c 
ommand line. 
This should work unless it involves constant data structures referencing symbols 
from auto-imported DLLs.) 
在编译命令中加入 -enable-auto-import

三、自动补全 
一些代码缩进和其他例如括号自动补全等只需在vimrc配置文件加上相应配置代码即可,最后博主会上传博主自己的vimrc配置代码(较适合于比赛)。接下来是代码自动补全插件的安装: 
参考自:http://timothyqiu.com/archives/using-omnicomplete-for-c-cplusplus-in-vim/

OmniComplete 并不是插件的名字,而是 Vim 众多补全方式中的一种(全能补全)。说白了 OmniComplete 其实就是根据光标前的内容猜测光标后的内容,具体怎么猜取决于所采用的脚本。

而 OmniCppComplete 就是专为 C/C++ 编写的 OmniComplete 一个补全脚本。

那么经常和 OmniCppComplete 一起出没的 Ctags 又是什么呢?Ctags 全名 Exuberant Ctags,是一个独立的程序(也就是说,其实和 Vim 一点关系都没有)。它可以为各种语言的源代码生成语言元素(language object)索引文件。对于 C/C++ 来说,就是把源代码中的各种宏、函数、类、类成员等等元素和它们的相关信息生成索引文件,供其它程序使用。

安装 Ctags 
从官网下载 Ctags 可执行文件,网站是 http://ctags.sourceforge.net/ 
将下载到的文件(仅 EXE 文件即可)解压到一个目录,例如 F:/ctags 
将该目录加入环境变量 PATH 
准备索引文件 
以生成 C++ 标准库索引文件为例:

下载专为 Ctags 修改过的 libstdc++ 头文件 
将其解压到一个目录,例如 F:/ctags/cpp_src 
使用命令行进入 F:/ctags/cpp_src 后执行:

ctags -R –sort=1 –c++-kinds=+p –fields=+iaS –extra=+q –language-force=C++ -f cpp . 
建议将上一步生成的 F:/ctags/cpp_src/cpp 文件放到一个专门放置索引文件的目录以便后面的统一设置,例如放到 F:/ctags/tags

其它库的索引文件也可以依法炮制,只需切换到该库的 include 文件夹,执行:

ctags -R –sort=yes –c++-kinds=+p –fields=+iaS –extra=+q –language-force=C++ -f <文件名> .

安装 OmniCppComplete 
下载 OmniCppComplete 
将下载到的文件解压到 ~/.vim (unix) 或者 %HOMEPATH%\vimfiles (Windows) 文件夹 
在 vimrc 文件中加入

" ctags 索引文件 (根据已经生成的索引文件添加即可)
set tags+=D:/ctags/tags/cpp
" OmniCppComplete
let OmniCpp_NamespaceSearch = 1
let OmniCpp_GlobalScopeSearch = 1
let OmniCpp_ShowAccess = 1
let OmniCpp_ShowPrototypeInAbbr = 1 " 显示函数参数列表
let OmniCpp_MayCompleteDot = 1   " 输入 .  后自动补全
let OmniCpp_MayCompleteArrow = 1 " 输入 -> 后自动补全
let OmniCpp_MayCompleteScope = 1 " 输入 :: 后自动补全
let OmniCpp_DefaultNamespaces = ["std", "_GLIBCXX_STD"]
" 自动关闭补全窗口
au CursorMovedI,InsertLeave * if pumvisible() == 0|silent! pclose|endif
set completeopt=menuone,menu,longest
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

另外,还需确认在 vimrc 中开启了 filetype 选项,不然 OmniComplete 无法自动识别 C/C++ 文件类型进行补全。

这样,在插入模式编辑 C/C++ 源文件时按下 . 或 -> 或 ::,或者手动按下 Ctrl+X Ctrl+O 后就会弹出自动补全窗口,此时可以用 Ctrl+N 和 Ctrl+P 上下移动光标进行选择。

这样,一个精简的IDE就完成了。

博主的vimrc

set nocompatible
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswinset diffexpr=MyDiff()
function MyDiff()let opt = '-a --binary 'if &diffopt =~ 'icase' | let opt = opt . '-i ' | endifif &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endiflet arg1 = v:fname_inif arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endiflet arg2 = v:fname_newif arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endiflet arg3 = v:fname_outif arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endiflet eq = ''if $VIMRUNTIME =~ ' 'if &sh =~ '\<cmd'let cmd = '""' . $VIMRUNTIME . '\diff"'let eq = '"'elselet cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"'endifelselet cmd = $VIMRUNTIME . '\diff'endifsilent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq
endfunction
"定义CompileRun函数,用来调用进行编译和运行
func CompileRun()
exec "w"
"C程序
if &filetype == 'c'
exec "!gcc -Wl,-enable-auto-import % -g -o %<.exe"
"c++程序
elseif &filetype == 'cpp'
exec "!g++ -Wl,-enable-auto-import % -g -o %<.exe"
"Java程序
elseif &filetype == 'java'
exec "!javac %"
endif
endfunc
"结束定义CompileRun
"定义Run函数
func Run()
if &filetype == 'c' || &filetype == 'cpp'
exec "!%<.exe"
elseif &filetype == 'java'
exec "!java %<"
endif
endfunc
"定义Debug函数,用来调试程序
func Debug()
exec "w"
"C程序
if &filetype == 'c'
exec "!gcc % -g -o %<.exe"
exec "!gdb %<.exe"
elseif &filetype == 'cpp'
exec "!g++ % -g -o %<.exe"
exec "!gdb %<.exe"
"Java程序
elseif &filetype == 'java'
exec "!javac %"
exec "!jdb %<"
endif
endfunc
"结束定义Debug
"设置程序的运行和调试的快捷键F5和Ctrl-F5
map <F5> :call CompileRun()<CR>
map <F6> :call Run()<CR>
map <C-F5> :call Debug()<CR>
:set number" Vim color file
" Maintainer:   Bram Moolenaar <Bram@vim.org>
" Last Change:  2006 Apr 14" This color scheme uses a dark grey background." First remove all existing highlighting.
set background=dark
hi clear
if exists("syntax_on")syntax reset
endiflet colors_name = "evening"hi Normal ctermbg=DarkGrey ctermfg=White guifg=White guibg=grey20" Groups used in the 'highlight' and 'guicursor' options default value.
hi ErrorMsg term=standout ctermbg=DarkRed ctermfg=White guibg=Red guifg=White
hi IncSearch term=reverse cterm=reverse gui=reverse
hi ModeMsg term=bold cterm=bold gui=bold
hi StatusLine term=reverse,bold cterm=reverse,bold gui=reverse,bold
hi StatusLineNC term=reverse cterm=reverse gui=reverse
hi VertSplit term=reverse cterm=reverse gui=reverse
hi Visual term=reverse ctermbg=black guibg=grey60
hi VisualNOS term=underline,bold cterm=underline,bold gui=underline,bold
hi DiffText term=reverse cterm=bold ctermbg=Red gui=bold guibg=Red
hi Cursor guibg=Green guifg=Black
hi lCursor guibg=Cyan guifg=Black
hi Directory term=bold ctermfg=LightCyan guifg=Cyan
hi LineNr term=underline ctermfg=Yellow guifg=Yellow
hi MoreMsg term=bold ctermfg=LightGreen gui=bold guifg=SeaGreen
hi NonText term=bold ctermfg=LightBlue gui=bold guifg=LightBlue guibg=grey30
hi Question term=standout ctermfg=LightGreen gui=bold guifg=Green
hi Search term=reverse ctermbg=Yellow ctermfg=Black guibg=Yellow guifg=Black
hi SpecialKey term=bold ctermfg=LightBlue guifg=Cyan
hi Title term=bold ctermfg=LightMagenta gui=bold guifg=Magenta
hi WarningMsg term=standout ctermfg=LightRed guifg=Red
hi WildMenu term=standout ctermbg=Yellow ctermfg=Black guibg=Yellow guifg=Black
hi Folded term=standout ctermbg=LightGrey ctermfg=DarkBlue guibg=LightGrey guifg=DarkBlue
hi FoldColumn term=standout ctermbg=LightGrey ctermfg=DarkBlue guibg=Grey guifg=DarkBlue
hi DiffAdd term=bold ctermbg=DarkBlue guibg=DarkBlue
hi DiffChange term=bold ctermbg=DarkMagenta guibg=DarkMagenta
hi DiffDelete term=bold ctermfg=Blue ctermbg=DarkCyan gui=bold guifg=Blue guibg=DarkCyan
hi CursorColumn term=reverse ctermbg=Black guibg=grey40
hi CursorLine term=underline cterm=underline guibg=grey40" Groups for syntax highlighting
hi Constant term=underline ctermfg=Magenta guifg=#ffa0a0 guibg=grey5
hi Special term=bold ctermfg=LightRed guifg=Orange guibg=grey5
if &t_Co > 8hi Statement term=bold cterm=bold ctermfg=Yellow guifg=#ffff60 gui=bold
endif
hi Ignore ctermfg=DarkGrey guifg=grey20" vim: sw=2
set wrap            " 长行自动折行
set number          " 显示行号  
set cursorline      " 突出显示当前行  
set tabstop=4       " 设置tab键的宽度  
set backspace=2     " 设置退格键可用  syn on              " 打开语法高亮  
set showmatch       " 设置匹配模式,类似当输入一个左括号时会匹配相应的那个右括号  
set smartindent     " 智能对齐方式  
set shiftwidth=4    " 换行时行间交错使用4个空格  
set autoindent      " 自动对齐  
set ai!             " 设置自动缩进  
set cindent         " 以c/c++的模式缩进
filetype plugin indent on     " 开启插件  
set completeopt=longest,menu" ctags 索引文件 (根据已经生成的索引文件添加即可) 
set tags+=F:/Ctags/tags/cpp
" OmniCppComplete 
let OmniCpp_NamespaceSearch = 1
let OmniCpp_GlobalScopeSearch = 1
let OmniCpp_ShowAccess = 1 
let OmniCpp_ShowPrototypeInAbbr = 1 " 显示函数参数列表 
let OmniCpp_MayCompleteDot = 1   " 输入 .  后自动补全
let OmniCpp_MayCompleteArrow = 1 " 输入 -> 后自动补全 
let OmniCpp_MayCompleteScope = 1 " 输入 :: 后自动补全 
let OmniCpp_DefaultNamespaces = ["std", "_GLIBCXX_STD"]
" 自动关闭补全窗口 
au CursorMovedI,InsertLeave * if pumvisible() == 0|silent! pclose|endif 
set completeopt=menuone,menu,longest
filetype plugin indent on" 括号自动补全
inoremap ( ()<ESC>i
inoremap [ []<ESC>i
inoremap { {<CR>}<ESC>kA<CR>
" inoremap < <><ESC>imap <f2> :call SetTitle()<CR>
func SetTitle()
let l = 0
let l = l + 1 | call setline(l, '/*')
let l = l + 1 | call setline(l, ' * Author:  ktmzgl')
let l = l + 1 | call setline(l, ' * Created Time:  '.strftime('%c'))
let l = l + 1 | call setline(l, ' * File Name: '.expand('%'))
let l = l + 1 | call setline(l, ' */')
let l = l + 1 | call setline(l, '#include <iostream>')
let l = l + 1 | call setline(l, '#include <cstdio>')
let l = l + 1 | call setline(l, '#include <cstdlib>')
let l = l + 1 | call setline(l, '#include <cstring>')
let l = l + 1 | call setline(l, '#include <cmath>')
let l = l + 1 | call setline(l, '#include <algorithm>')
let l = l + 1 | call setline(l, '#include <string>')
let l = l + 1 | call setline(l, '#include <vector>')
let l = l + 1 | call setline(l, '#include <stack>')
let l = l + 1 | call setline(l, '#include <queue>')
let l = l + 1 | call setline(l, '#include <set>')
let l = l + 1 | call setline(l, '#include <time.h>')
let l = l + 1 | call setline(l, 'using namespace std;')
let l = l + 1 | call setline(l, 'const int maxint = -1u>>1;')
let l = l + 1 | call setline(l, '')
let l = l + 1 | call setline(l, 'int main() {')
let l = l + 1 | call setline(l, '    return 0;')
let l = l + 1 | call setline(l, '}')
let l = l + 1 | call setline(l, '')
endfunc

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/509581.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构实验之二叉树四:还原二叉树

题目描述 给定一棵二叉树的先序遍历序列和中序遍历序列&#xff0c;要求计算该二叉树的高度。 输入 输入数据有多组&#xff0c;每组数据第一行输入1个正整数N(1 < N < 50)为树中结点总数&#xff0c;随后2行先后给出先序和中序遍历序列&#xff0c;均是长度为N的不包含重…

Flink 1.12 CDH 6.3 集成

之前记录的&#xff1a;Flink 1.9 CDH 6.3 集成 有些下载链接可能被官方关闭了&#xff0c;这里介绍1.12版本集成&#xff0c;并把安装包下载地址换为百度网盘链接 下载安装包 链接: https://pan.baidu.com/s/112fiaaMAMMXMsyiTDh3qjg 提取码: ar5f 安装包内容 FLINK-1.12…

合并流

合并流/顺序流(SequenceInputStream): 就是把多个输入流,合并成一个流对象.

gvim常用的配置及插件 -windows

gvim常用的配置及插件 接触vim也已经有一年多了&#xff0c;期间也用过一段时间的SourceInsight&#xff0c;SourceInsight是Windows下一款不错的查看代码的软件。利用它可以迅速的了解一个大型程序的结构。后来在Linux下进行了一段时间的程序开发&#xff0c;就回到vim上了,经…

数据结构实验之求二叉树后序遍历和层次遍历

题目描述 已知一棵二叉树的前序遍历和中序遍历&#xff0c;求二叉树的后序遍历。输入 输入数据有多组&#xff0c;第一行是一个整数t (t<1000)&#xff0c;代表有t组测试数据。每组包括两个长度小于50 的字符串&#xff0c;第一个字符串表示二叉树的先序遍历序列&#xff0c…

CDH 6 安装服务哈希验证失败 解决方法

当安装cdh 6&#xff0c;使用本地搭建的parcel时&#xff0c;出现了哈希验证失败的问题&#xff1a; 查看了parcel的sha值&#xff0c;与官网的一致&#xff0c;没有问题&#xff1a; #parcel sha值 [rootlocalhost bigdata]# sha1sum CDH-6.0.0-1.cdh6.0.0.p0.537114-el7.pa…

Arrays.sort()用来自定义排序的使用

compareTo方法 public int compareTo(String anotherString)按字典顺序比较两个字符串。该比较基于字符串中各个字符的 Unicode 值。按字典顺序将此 String 对象表示的字符序列与参数字符串所表示的字符序列进行比较。如果按字典顺序此 String 对象位于参数字符串之前&#xf…

gvim配置

手把手教你把Vim改装成一个IDE编程环境(图文) By:吴垠Date:2007-09-07Version:0.5Email:lazy.fox.wu#gmail.comHomepage:http://blog.csdn.net/wooinCopyright:该文章版权由吴垠和他可爱的老婆小包子所有。可在非商业目的下任意传播和复制。对于商业目的下对本文的任何行为需…

双向队列

题目描述 想想双向链表……双向队列的定义差不多&#xff0c;也就是说一个队列的队尾同时也是队首&#xff1b;两头都可以做出队&#xff0c;入队的操作。 现在给你一系列的操作&#xff0c;请输出最后队列的状态&#xff1b; 命令格式&#xff1a; LIN X X表示一个整数&#…

Dubbo调用时报错Invalid token Forbid invoke remote service interface

dubbo开启token服务后&#xff0c;使用集群容错策略为FailoverClusterInvoker&#xff0c;当出现服务调用失败进行转移&#xff0c;重试其它服务器时&#xff0c;会出现token invalid错误&#xff0c;provider会拒绝服务调用。 原因&#xff1a; 消费端&#xff1a; 1、com.…

蓝桥杯-方格填数

方格填数 如下的10个格子 ––– | | | | –––– | | | | | –––– | | | | ––– &#xff08;如果显示有问题&#xff0c;也可以参看【图1.jpg】&#xff09; 填入0~9的数字。要求&#xff1a;连续的两个数字不能相邻。 &#xff08;左右、上下、对角都算相邻…

Gvim开发环境配置笔记--Windows篇

环境&#xff1a;Windows7 旗舰版 1、安装Gvim7.3 &#xff1a; 下载地址http://www.vim.org/download.php#pc。 2、安装中文帮助&#xff1a;vimcdoc-1.8.0-setup.exe 地址http://vimcdoc.sourceforge.net/ 会自动识别gvim的安装路径&#xff0c; 安装完后&#xff0c;gvim菜单…

Grafana : 前端页面 通过API Key免登录访问Grafana

文章目录场景一是使用匿名登陆&#xff0c;最简单方便二是使用grafana颁发一个API Key。场景 平台要集成grafana&#xff0c;想绕过用户登录&#xff0c;目前知道有2个方法。 前提&#xff1a;先修改配置defaults.ini/grafana.ini允许嵌入 allow_embedding true一是使用匿名…

数据结构实验之队列一:排队买饭

题目描述 中午买饭的人特多,食堂真是太拥挤了,买个饭费劲,理工大的小孩还是很聪明的,直接奔政通超市,哈哈,确实,政通超市里面也卖饭,有好几种菜,做的比食堂好吃多了,价格也不比食堂贵,并且买菜就送豆浆,吸引了不少童鞋。所以有时吧&#xff0c;人还是很多的&#xff0c;排队是免…

vim配置vimrc详解

一、vim/gvim 环境变量 1. vimrc的存放位置&#xff1a; 系统 vimrc 文件: "$VIM/vimrc" 用户 vimrc 文件: "$HOME/.vimrc" 用户 exrc 文件: "$HOME/.exrc" 系统 gvimrc 文件: "$VIM/gvimrc" 用户 gvimrc 文件: "$HOME/.g…

CentOS 使用iso镜像安装本地 yum 源

文章目录下载服务器镜像挂载iso镜像修改yum源挂载iso到系统中查看挂载状态挂载完成后清缓存安装服务测试下载服务器镜像 下载与我们服务器相同版本的服务器镜像。 查看当前服务器版本 [rootiZot101s4kxuygvttz67vjZ yum.repos.d]# cat /etc/redhat-release CentOS Linux re…

refresh的停车场

题目描述 refresh最近发了一笔横财&#xff0c;开了一家停车场。由于土地有限&#xff0c;停车场内停车数量有限&#xff0c;但是要求进停车场的车辆过多。当停车场满时&#xff0c;要进入的车辆会进入便道等待&#xff0c;最先进入便道的车辆会优先 进入停车场&#xff0c;而且…

vim目录说明

plugin、autoload、ftplugin有什么区别 很多初用vim的朋友在安装插件时都会有些疑惑。同样的插件&#xff0c;有些教程说安装在plugin目录&#xff0c;有些说安装在ftplugin目录&#xff0c;有些说安装在autoload目录&#xff0c;到底这些目录的区别是什么呢&#xff1f;今天阿…

Grafana Prometheus 服务安装部署(Linux服务器监控)

文章目录一、概述二、安装Prometheus1.安装node_exporter2.安装Prometheus三、安装Grafana展示监控监控进程一、概述 Prometheus 介绍 Prometheus是一套开源的监控&报警&时间序列数据库的组合&#xff0c;起始是由SoundCloud公司开发的。随着发展&#xff0c;越来越多…

加法变乘法(蓝桥杯)

题意&#xff1a; 我们都知道&#xff1a;123 … 49 1225 现在要求你把其中两个不相邻的加号变成乘号&#xff0c;使得结果为2015 比如&#xff1a; 123…10*1112…27*2829…49 2015 就是符合要求的答案。 请你寻找另外一个可能的答案&#xff0c;并把位置靠前的那个乘…