另一種簡單的思路:
創(chuàng)新互聯(lián)專注于企業(yè)全網(wǎng)整合營銷推廣、網(wǎng)站重做改版、永順網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5頁面制作、商城網(wǎng)站定制開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為永順等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
將情侶的空間位置要求轉(zhuǎn)換為
101 1001 10001 100001四個數(shù)各自左移,然后或運算得到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)//找到了!轉(zhuǎn)換后打印
{
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
能拆一對是一對啊 -.-!
用文件操作的二進(jìn)制寫入方法把照片數(shù)據(jù)寫入數(shù)據(jù)文件,
或直接保存到MYSQL數(shù)據(jù)庫
android 中實現(xiàn)網(wǎng)頁調(diào)用攝像頭功能方法·如下:
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//實現(xiàn)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接口,監(jiān)聽html頁面中的js點擊事件
wv.addJavascriptInterface(new Object(){
public String clickOnAndroid() {//將被js調(diào)用
mHandler.post(new Runnable() {
public void run() {
fromTakePhoto = true;
//調(diào)用 啟用攝像頭的自定義方法
takePhoto("testimg" + Math.random()*1000+1 + ".jpg");
System.out.println("========fileFullName: " + fileFullName);
}
});
return fileFullName;
}
}, "demo");
}
/*
* 調(diào)用攝像頭的方法
*/
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);
//初始化并調(diào)用攝像頭
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語言本身是無法直接控制外設(shè)的。但可以通過各種應(yīng)用編程接口(api),間接調(diào)用外部設(shè)備。例如opencv庫。
OpenCV的全稱是:Open Source Computer Vision Library。OpenCV是一個基于(開源)發(fā)行的跨平臺計算機(jī)視覺庫,可以運行在Linux、判陸Windows和Mac OS操作系統(tǒng)上。它輕量級而且高效——由一系列 C 函數(shù)和少量 C++ 類構(gòu)成,同時提供了Python、Ruby、MATLAB等語言的接口,實現(xiàn)了圖像處理和計算機(jī)視覺方面的很多通用算法。
OpenCV用C++語言編寫,它的主要接口也是C++語言,但是依然保留了大量的C語言接口。該庫也有大量的Python, Java and MATLAB/OCTAVE (版本2.5)的接口。這些語言的API接口函數(shù)可以通過在線文檔獲得。如今也提供對于C#,Ch, Ruby的支持。
例程:
#include?"cv.h"
#include?"highgui.h"
int?main(int?argc,?char**?argv)?{
cvNamedWindow("win");
CvCapture*?capture?=?cvCreateCameraCapture(0);????//創(chuàng)建并獲取攝像設(shè)備
IplImage*?frame;
while(1)?{
frame?=?cvQueryFrame(capture);????//創(chuàng)建并獲取一張攝像截圖掘握頃
if(!frame)?break;????????//如果失敗終止循環(huán)
cvShowImage("win",?frame);????//在一個"win"窗口,并當(dāng)中顯示該截圖
char?c?=?cvWaitKey(50);
if(c==27)?break;
}
cvReleaseCapture(capture);??????皮尺??//釋放攝像設(shè)備
cvDestroyWindow("win");????????//釋放窗口"win"
return?0;
}