C++鸢尾花数

题目描述

所谓鸢尾花数,是指一个正整数的十进制表示中,任意相邻两位的数字之差是一个常数,比如12345,8642,66666都是鸢尾花数,而88910与121不是鸢尾花数。

给定一个区间[a,b],请找出在a到b之间的所有鸢尾花数。

输入描述

单独一行:两个正整数a与b

输出描述

单独一行:表示给定区间内所有的鸢尾花数,以空格隔开。如果该区间内没有鸢尾花数,输出-1

输入样例

100 150

输出样例

111 123 135 147

数据描述

1≤𝑎,𝑏≤105

AC代码

#include<bits/stdc++.h>
using namespace std;
int a,b,ans[8],f;
int main(){
	cin>>a>>b;
	for(int i=a;i<=b;i++){
		int len=0,flag=0,t=i;
		while(t!=0){
			ans[++len]=t%10;
			t/=10;
		}
		int x=ans[2]-ans[1];
		for(int j=1;j<len;j++){
			if(ans[j+1]-ans[j]!=x){
				flag=1;
				break;
			}
		} 
		if(!flag){
			f=1;
			cout<<i<<" ";
		}
	}
	if(!f) cout<<-1;
	return 0;
}

C++中,处理鸢尾花据集通常会涉及到机器学习中的基本示例,特别是用于入门分类算法,比如K近邻(KNN)、决策树或者支持向量机(SVM)。由于这里不是直接提供完整的源代码,我可以为你概述一个简单的步骤,并给出相关的代码片段: 首先,你需要包含必要的库,例如`<iostream>`、`<fstream>`(文件输入输出)、`<vector>`(动态组)、以及用于据处理的`Eigen`库(如果你打算使用矩阵运算)。 1. **读取据**: ```cpp #include <fstream> std::ifstream file("iris.csv"); // 假设据存储在一个CSV文件中 std::string line; std::vector<std::vector<double>> iris_data; // 存放特征值 ``` 2. **解析据**: ```cpp while (std::getline(file, line)) { std::istringstream iss(line); std::vector<double> row; for (double value; iss >> value; ) { row.push_back(value); } iris_data.push_back(row); // 添加到据集 } ``` 3. **预处理据** (如标准化): ```cpp using namespace Eigen; MatrixXd features(iris_data.size(), 4); // 4代表四维特征空间(萼片长度、萼片宽度、花瓣长度、花瓣宽度) for (size_t i = 0; i < iris_data.size(); ++i) { features.row(i) << iris_data[i].front(), iris_data[i].second, iris_data[i].third, iris_data[i].fourth; } // 标准化 VectorXd mean = features.colwise().mean(); MatrixXd stdDev = features.array().colwise().covariance(); features.rowwise() -= mean; features = features.array().rowwise() / sqrt(stdDev.diagonal()); ``` 4. **选择并实现分类算法(假设用SVM做例子)**: ```cpp #include <mlpack/core.hpp> #include <mlpack/methods/svm/svc.hpp> arma::mat X(features.rows(), features.cols() - 1); // 减去类别标签列 arma::Row<size_t> y(iris_data.begin(), iris_data.end()); // 类别标签 mlpack::svm::LinearSVC svm(X, arma::conv_to<arma::Row<size_t>>::from(y)); svm.Train(); // 对新样本进行预测 arma::Row<size_t> prediction = svm.Predict(newSample); ``` 5. **结果展示**: ```cpp std::cout << "Predicted class: " << prediction(0) << std::endl; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值