另一种简单的思路:
创新互联专注于企业全网整合营销推广、网站重做改版、永顺网站定制设计、自适应品牌网站建设、H5页面制作、商城网站定制开发、集团公司官网建设、成都外贸网站建设公司、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为永顺等各大城市提供网站开发制作服务。
将情侣的空间位置要求转换为
101 1001 10001 100001四个数各自左移,然后或运算得到11111111的要求。
#include stdio.h
#define LOVERS_PAIR_1 (0b101)
#define LOVERS_PAIR_2 (0b1001)
#define LOVERS_PAIR_3 (0b10001)
#define LOVERS_PAIR_4 (0b100001)
#define LOVERS_PAIR_TARGET (0b11111111)
int main()
{
int x=0, y=0, z=0, t=0;
unsigned char result=0;
char order[8+1]={'\0'};
printf("符合:情侣Aa中间隔一个人,情侣Bb中间隔两个人,情侣Cc中间隔三个人,情侣Dd中间隔四个人的情况:\n");
for(x=0,result=0; x6; x++)//x表示情侣Aa组合从右到左需空出的位置
{
result = LOVERS_PAIR_1x;
for(y=0; y5; y++)//y表示情侣Bb组合从右到左需空出的雹大位置
{
if (result(LOVERS_PAIR_2y))
continue;
result = result|(LOVERS_PAIR_2y);
for (z=0; z4; z++)//z表示情侣Cc组合从右到左需空出的位置
{
if (result(LOVERS_PAIR_3z))
continue;
result = result|(LOVERS_PAIR_3z);
for(t=0; t3; t++)//t表示情侣Dd组合从右到左需空出的位置
{
if (result(LOVERS_PAIR_4t))
continue;
result = result|(LOVERS_PAIR_4t);
穗肆脊 if (LOVERS_PAIR_TARGET==result)//找到了!转换后打印
{
order[8-x-1]='a';
order[8-(x+2)-1]='A';
order[8-y-1]='b';
order[8-(y+3)-1]='B';
猜渗 order[8-z-1]='c';
order[8-(z+4)-1]='C';
order[8-t-1]='d';
order[8-(t+5)-1]='D';
order[8]='\0';
printf("%s\n", order);
}
}
}
}
}
}
程序输出:
符合:情侣Aa中间隔一个人,情侣Bb中间隔两个人,情侣Cc中间隔三个人,情侣Dd中间隔四个人的情况:
DACaBdcb
能拆一对是一对啊 -.-!
用文件操作的二进制写入方法把照片数据写入数据文件,
或直接保存到MYSQL数据库
android 中实现网页调用摄像头功能方法·如下:
1/apk/res/android"
xmlns:tools="schemas/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".CameraWebviewActivity"
Button
android:id="@+id/bt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Camera"
android:layout_alignParentTop="世搜true"
/液模
WebView
android:id="@+id/wv"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_below="@+id/bt"
/搜埋历
/RelativeLayout
4.、编写activity:
public class CameraWebviewActivity extends Activity {
private final static String TAG = "CameraWebviewActivity";
private Button bt;
private WebView wv;
public String fileFullName;//照相后的照片的全整路径
private boolean fromTakePhoto; //是否是从摄像界面返回的webview
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_camera_webview);
initViews();
}
private void initViews() {
bt = (Button) findViewById(R.id.bt);
bt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
System.out.println("----------------");
takePhoto( Math.random()*1000+1 + ".jpg");
}
});
wv = (WebView) findViewById(R.id.wv);
WebSettings setting = wv.getSettings();
setting.setJavaScriptEnabled(true);
wv.setWebViewClient(new WebViewClient(){
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return super.shouldOverrideUrlLoading(view, url);
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
}
});
wv.setWebChromeClient(new WebChromeClient(){
@Override//实现js中的alert弹窗在Activity中显示
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
Log.d(TAG, message);
result.confirm();
return true;
}
});
wv.loadUrl("");
final Handler mHandler = new Handler();
//webview增加javascript接口,监听html页面中的js点击事件
wv.addJavascriptInterface(new Object(){
public String clickOnAndroid() {//将被js调用
mHandler.post(new Runnable() {
public void run() {
fromTakePhoto = true;
//调用 启用摄像头的自定义方法
takePhoto("testimg" + Math.random()*1000+1 + ".jpg");
System.out.println("========fileFullName: " + fileFullName);
}
});
return fileFullName;
}
}, "demo");
}
/*
* 调用摄像头的方法
*/
public void takePhoto(String filename) {
System.out.println("----start to take photo2 ----");
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_MEDIA_TITLE, "TakePhoto");
//判断是否有SD卡
String sdDir = null;
boolean isSDcardExist = Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED);
if(isSDcardExist) {
sdDir = Environment.getExternalStorageDirectory().getAbsolutePath();
} else {
sdDir = Environment.getRootDirectory().getAbsolutePath();
}
//确定相片保存路径
String targetDir = sdDir + "/" + "webview_camera";
File file = new File(targetDir);
if (!file.exists()) {
file.mkdirs();
}
fileFullName = targetDir + "/" + filename;
System.out.println("----taking photo fileFullName: " + fileFullName);
//初始化并调用摄像头
intent.putExtra(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(fileFullName)));
startActivityForResult(intent, 1);
}
/*
* (non-Javadoc)
* @see android.app.Activity#onActivityResult(int, int, android.content.Intent)
* 重写些方法,判断是否从摄像Activity返回的webview activity
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
System.out.println("----requestCode: " + requestCode + "; resultCode " + resultCode + "; fileFullName: " + fileFullName);
if (fromTakePhoto requestCode ==1 resultCode ==-1) {
wv.loadUrl("javascript:wave2('" + fileFullName + "')");
} else {
wv.loadUrl("javascript:wave2('Please take your photo')");
}
fromTakePhoto = false;
super.onActivityResult(requestCode, resultCode, data);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.camera_webview, menu);
return true;
}
}
C语言本身是无法直接控制外设的。但可以通过各种应用编程接口(api),间接调用外部设备。例如opencv库。
OpenCV的全称是:Open Source Computer Vision Library。OpenCV是一个基于(开源)发行的跨平台计算机视觉库,可以运行在Linux、判陆Windows和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
OpenCV用C++语言编写,它的主要接口也是C++语言,但是依然保留了大量的C语言接口。该库也有大量的Python, Java and MATLAB/OCTAVE (版本2.5)的接口。这些语言的API接口函数可以通过在线文档获得。如今也提供对于C#,Ch, Ruby的支持。
例程:
#include "cv.h"
#include "highgui.h"
int main(int argc, char** argv) {
cvNamedWindow("win");
CvCapture* capture = cvCreateCameraCapture(0); //创建并获取摄像设备
IplImage* frame;
while(1) {
frame = cvQueryFrame(capture); //创建并获取一张摄像截图掘握顷
if(!frame) break; //如果失败终止循环
cvShowImage("win", frame); //在一个"win"窗口,并当中显示该截图
char c = cvWaitKey(50);
if(c==27) break;
}
cvReleaseCapture(capture); 皮尺 //释放摄像设备
cvDestroyWindow("win"); //释放窗口"win"
return 0;
}